home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / djgpp / src / binutils.252 / ld / ldlex.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-10-22  |  83.9 KB  |  2,878 lines

  1. /* A lexical scanner generated by flex */
  2.  
  3. #define FLEX_SCANNER
  4.  
  5. #include <stdio.h>
  6.  
  7.  
  8. /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
  9. #ifdef c_plusplus
  10. #ifndef __cplusplus
  11. #define __cplusplus
  12. #endif
  13. #endif
  14.  
  15.  
  16. #ifdef __cplusplus
  17.  
  18. #include <stdlib.h>
  19. #include <unistd.h>
  20.  
  21. /* Use prototypes in function declarations. */
  22. #define YY_USE_PROTOS
  23.  
  24. /* The "const" storage-class-modifier is valid. */
  25. #define YY_USE_CONST
  26.  
  27. #else    /* ! __cplusplus */
  28.  
  29. #ifdef __STDC__
  30.  
  31. #define YY_USE_PROTOS
  32. #define YY_USE_CONST
  33.  
  34. #endif    /* __STDC__ */
  35. #endif    /* ! __cplusplus */
  36.  
  37.  
  38. #ifdef __TURBOC__
  39. #define YY_USE_CONST
  40. #endif
  41.  
  42.  
  43. #ifndef YY_USE_CONST
  44. #ifndef const
  45. #define const
  46. #endif
  47. #endif
  48.  
  49.  
  50. #ifdef YY_USE_PROTOS
  51. #define YY_PROTO(proto) proto
  52. #else
  53. #define YY_PROTO(proto) ()
  54. #endif
  55.  
  56. /* Returned upon end-of-file. */
  57. #define YY_NULL 0
  58.  
  59. /* Promotes a possibly negative, possibly signed char to an unsigned
  60.  * integer for use as an array index.  If the signed char is negative,
  61.  * we want to instead treat it as an 8-bit unsigned char, hence the
  62.  * double cast.
  63.  */
  64. #define YY_SC_TO_UI(c) ((unsigned int) (unsigned char) c)
  65.  
  66. /* Enter a start condition.  This macro really ought to take a parameter,
  67.  * but we do it the disgusting crufty way forced on us by the ()-less
  68.  * definition of BEGIN.
  69.  */
  70. #define BEGIN yy_start = 1 + 2 *
  71.  
  72. /* Translate the current start state into a value that can be later handed
  73.  * to BEGIN to return to the state.
  74.  */
  75. #define YY_START ((yy_start - 1) / 2)
  76.  
  77. /* Action number for EOF rule of a given start state. */
  78. #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  79.  
  80. /* Special action meaning "start processing a new file".  Now included
  81.  * only for backward compatibility with previous versions of flex.
  82.  */
  83. #define YY_NEW_FILE yyrestart( yyin )
  84.  
  85. #define YY_END_OF_BUFFER_CHAR 0
  86.  
  87. /* Size of default input buffer. */
  88. #define YY_BUF_SIZE 16384
  89.  
  90. typedef struct yy_buffer_state *YY_BUFFER_STATE;
  91.  
  92. extern int yyleng;
  93. extern FILE *yyin, *yyout;
  94.  
  95. #ifdef __cplusplus
  96. extern "C" {
  97. #endif
  98.     extern int yywrap YY_PROTO(( void ));
  99. #ifdef __cplusplus
  100.     }
  101. #endif
  102.  
  103. #define EOB_ACT_CONTINUE_SCAN 0
  104. #define EOB_ACT_END_OF_FILE 1
  105. #define EOB_ACT_LAST_MATCH 2
  106.  
  107. /* The funky do-while in the following #define is used to turn the definition
  108.  * int a single C statement (which needs a semi-colon terminator).  This
  109.  * avoids problems with code like:
  110.  *
  111.  *     if ( condition_holds )
  112.  *        yyless( 5 );
  113.  *    else
  114.  *        do_something_else();
  115.  *
  116.  * Prior to using the do-while the compiler would get upset at the
  117.  * "else" because it interpreted the "if" statement as being all
  118.  * done when it reached the ';' after the yyless() call.
  119.  */
  120.  
  121. /* Return all but the first 'n' matched characters back to the input stream. */
  122.  
  123. #define yyless(n) \
  124.     do \
  125.         { \
  126.         /* Undo effects of setting up yytext. */ \
  127.         *yy_cp = yy_hold_char; \
  128.         yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
  129.         YY_DO_BEFORE_ACTION; /* set up yytext again */ \
  130.         } \
  131.     while ( 0 )
  132.  
  133. #define unput(c) yyunput( c, yytext_ptr )
  134.  
  135.  
  136. struct yy_buffer_state
  137.     {
  138.     FILE *yy_input_file;
  139.  
  140.     char *yy_ch_buf;        /* input buffer */
  141.     char *yy_buf_pos;        /* current position in input buffer */
  142.  
  143.     /* Size of input buffer in bytes, not including room for EOB
  144.      * characters.
  145.      */
  146.     int yy_buf_size;
  147.  
  148.     /* Number of characters read into yy_ch_buf, not including EOB
  149.      * characters.
  150.      */
  151.     int yy_n_chars;
  152.  
  153.     /* Whether this is an "interactive" input source; if so, and
  154.      * if we're using stdio for input, then we want to use getc()
  155.      * instead of fread(), to make sure we stop fetching input after
  156.      * each newline.
  157.      */
  158.     int yy_is_interactive;
  159.  
  160.     /* Whether to try to fill the input buffer when we reach the
  161.      * end of it.
  162.      */
  163.     int yy_fill_buffer;
  164.  
  165.     /* Whether we've seen an EOF on this buffer. */
  166.     int yy_eof_status;
  167. #define EOF_NOT_SEEN 0
  168.     /* "Pending" happens when the EOF has been seen but there's still
  169.      * some text to process.  Note that when we actually see the EOF,
  170.      * we switch the status back to "not seen" (via yyrestart()), so
  171.      * that the user can continue scanning by just pointing yyin at
  172.      * a new input file.
  173.      */
  174. #define EOF_PENDING 1
  175.     };
  176.  
  177. static YY_BUFFER_STATE yy_current_buffer = 0;
  178.  
  179. /* We provide macros for accessing buffer states in case in the
  180.  * future we want to put the buffer states in a more general
  181.  * "scanner state".
  182.  */
  183. #define YY_CURRENT_BUFFER yy_current_buffer
  184.  
  185.  
  186. /* yy_hold_char holds the character lost when yytext is formed. */
  187. static char yy_hold_char;
  188.  
  189. static int yy_n_chars;        /* number of characters read into yy_ch_buf */
  190.  
  191.  
  192. int yyleng;
  193.  
  194. /* Points to current character in buffer. */
  195. static char *yy_c_buf_p = (char *) 0;
  196. static int yy_init = 1;        /* whether we need to initialize */
  197. static int yy_start = 0;    /* start state number */
  198.  
  199. /* Flag which is used to allow yywrap()'s to do buffer switches
  200.  * instead of setting up a fresh yyin.  A bit of a hack ...
  201.  */
  202. static int yy_did_buffer_switch_on_eof;
  203.  
  204. static void yyunput YY_PROTO(( int c, char *buf_ptr ));
  205. void yyrestart YY_PROTO(( FILE *input_file ));
  206. void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
  207. void yy_load_buffer_state YY_PROTO(( void ));
  208. YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
  209. void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
  210. void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
  211.  
  212. static int yy_start_stack_ptr = 0;
  213. static int yy_start_stack_depth = 0;
  214. static int *yy_start_stack = 0;
  215. static void yy_push_state YY_PROTO(( int new_state ));
  216. static void yy_pop_state YY_PROTO(( void ));
  217. static int yy_top_state YY_PROTO(( void ));
  218.  
  219. #ifndef yytext_ptr
  220. static void yy_flex_strcpy YY_PROTO(( char *, const char * ));
  221. #endif
  222.  
  223. static void *yy_flex_alloc YY_PROTO(( unsigned int ));
  224. static void *yy_flex_realloc YY_PROTO(( void *ptr, unsigned int ));
  225. static void yy_flex_free YY_PROTO(( void * ));
  226.  
  227. #define yy_new_buffer yy_create_buffer
  228.  
  229. #define INITIAL 0
  230. #define SCRIPT 1
  231. #define EXPRESSION 2
  232. #define BOTH 3
  233. #define DEFSYMEXP 4
  234. #define MRI 5
  235. typedef unsigned char YY_CHAR;
  236. typedef int yy_state_type;
  237. FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
  238. extern char *yytext;
  239. #define yytext_ptr yytext
  240.  
  241. #ifdef __cplusplus
  242. static int yyinput YY_PROTO(( void ));
  243. #else
  244. static int input YY_PROTO(( void ));
  245. #endif
  246.  
  247. static yy_state_type yy_get_previous_state YY_PROTO(( void ));
  248. static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
  249. static int yy_get_next_buffer YY_PROTO(( void ));
  250. static void yy_fatal_error YY_PROTO(( const char msg[] ));
  251.  
  252. /* Done after the current pattern has been matched and before the
  253.  * corresponding action - sets up yytext.
  254.  */
  255. #define YY_DO_BEFORE_ACTION \
  256.     yytext_ptr = yy_bp; \
  257.     yyleng = yy_cp - yy_bp; \
  258.     yy_hold_char = *yy_cp; \
  259.     *yy_cp = '\0'; \
  260.     yy_c_buf_p = yy_cp;
  261.  
  262. #define YY_END_OF_BUFFER 130
  263. static const short int yy_accept[826] =
  264.     {   0,
  265.         0,    0,  122,  122,    0,    0,    0,    0,    0,    0,
  266.         0,    0,  130,  129,  127,  126,  124,  125,   32,  127,
  267.       122,   38,   29,   44,   43,   34,   35,   28,   36,  122,
  268.        37,    8,    8,   45,   46,   39,   40,   27,   33,    8,
  269.         8,    8,    8,    8,    8,  122,  122,  122,  122,  122,
  270.       122,  122,  122,  122,  122,  122,   10,    9,    8,   88,
  271.        86,  122,   42,   30,   41,   31,  128,  126,  125,   32,
  272.       128,  121,   38,   29,   44,   43,   34,   35,   28,   36,
  273.       121,   37,    8,    8,   45,   46,   39,   40,   27,   33,
  274.         8,    8,    8,  121,  121,   10,    9,    8,  121,   42,
  275.  
  276.        30,   41,   31,  121,    8,    8,    8,    8,    8,    8,
  277.         8,    8,  121,  121,  121,  121,  121,  121,  121,  121,
  278.       121,  121,  121,    8,    8,   88,   86,    4,    3,    2,
  279.         4,    5,    4,   93,   94,  120,   95,   28,  120,    8,
  280.         8,   40,    8,    8,    8,    8,    8,    8,  120,  120,
  281.       120,  120,  120,  120,    8,    8,    8,    8,  120,  120,
  282.       120,  120,   15,    0,  123,  122,    8,    8,   26,   24,
  283.        22,   20,   21,    1,   23,    8,  122,   18,   17,   14,
  284.        16,   19,    8,    8,  122,   91,  122,  122,  122,  122,
  285.         8,  122,  122,  122,  122,  122,  122,  122,  122,  122,
  286.  
  287.       122,  122,  122,  122,  122,  122,  122,  122,  122,  122,
  288.       122,  122,  122,  122,  122,  122,    8,  122,  122,  122,
  289.        25,   13,  121,    6,    6,   20,   21,   23,    8,    7,
  290.         7,    8,    0,   14,    8,    7,    7,    7,    8,  121,
  291.        91,    7,    8,  121,  121,  121,    8,  121,    8,    8,
  292.         8,    8,    8,  121,  121,  121,  121,    8,  121,  121,
  293.       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
  294.       121,  121,  121,  121,  121,  121,  121,  121,  121,  121,
  295.       121,    8,  121,  121,    4,    4,    4,    4,  120,    6,
  296.         6,   95,    8,    7,    7,    7,    8,  120,    8,    7,
  297.  
  298.       120,    7,  120,  120,  120,  120,  120,  120,  120,    8,
  299.       120,  120,  120,  120,  120,  120,  120,  120,   11,   12,
  300.       122,    8,  122,  122,  122,  122,  122,  122,    8,  122,
  301.       122,  122,  122,  122,  122,   73,  122,  122,  122,  122,
  302.       122,   57,  122,  122,  122,  122,  122,  122,  122,  122,
  303.       122,  122,  122,  122,  122,  122,  122,  122,  122,   89,
  304.        87,  122,  121,  121,    7,  121,    8,  121,  121,  121,
  305.       121,  121,    8,  121,  121,  121,  121,  121,    8,  121,
  306.       121,  121,  121,  121,  121,   73,  121,  121,  121,  121,
  307.       121,   57,  121,  121,  121,  121,  121,  121,  121,  121,
  308.  
  309.       121,  121,  121,  121,  121,   89,   87,    4,  120,  120,
  310.       120,  120,  120,   96,  120,  120,  120,  120,  120,  120,
  311.       120,  120,  120,  120,  111,  120,  120,  120,  120,  120,
  312.       120,  122,   52,  122,  122,   79,  122,   83,  122,  122,
  313.       122,  122,   69,  122,  122,  122,  122,   84,  122,  122,
  314.        77,  122,   54,  122,  122,  122,  122,  122,  122,   76,
  315.       122,  122,  122,  122,  122,  122,  122,  122,  122,  121,
  316.        52,  121,  121,   54,  121,  121,  121,  121,  121,   79,
  317.       121,   83,  121,  121,  121,   69,  121,  121,  121,  121,
  318.        84,  121,  121,   77,  121,  121,  121,  121,  121,  121,
  319.  
  320.        76,  121,  121,  121,  121,  121,  121,    8,  120,  120,
  321.       120,  100,   99,  120,  108,  103,  106,  120,  120,  109,
  322.       120,  120,  112,  120,  117,  113,  115,  120,  118,  122,
  323.        51,   49,  122,  122,  122,   82,   53,   75,  122,   63,
  324.       122,   62,  122,  122,  122,  122,  122,  122,  122,  122,
  325.       122,  122,   78,  122,  122,  122,  122,  122,  122,  121,
  326.        51,  121,  121,  121,  121,  121,   49,  121,  121,   82,
  327.        53,   75,  121,   63,  121,   62,  121,  121,  121,  121,
  328.       121,  121,  121,  121,  121,   78,  121,  121,  121,  120,
  329.       101,   98,  120,  108,  108,  105,  120,  120,  120,  120,
  330.  
  331.       117,  117,  114,  122,  122,  122,  122,  122,  122,   50,
  332.        47,  122,   81,   48,   61,  122,  122,  122,  122,   58,
  333.       122,   74,   59,  122,  122,  121,  121,   81,   58,  121,
  334.       121,  121,  121,  121,  121,   50,   47,  121,   48,   61,
  335.       121,  121,  121,  121,  121,   74,   59,  120,  120,  107,
  336.       104,  120,  120,  116,  122,  122,  122,   64,  122,   90,
  337.        80,  122,   85,   92,  122,  122,  122,   70,  122,  122,
  338.       121,   64,  121,  121,  121,  121,  121,  121,   90,   80,
  339.       121,   85,   92,  121,  121,   70,  120,  120,  120,  120,
  340.       110,  122,  122,  122,  122,  122,  122,   68,  122,  119,
  341.  
  342.       122,  110,  121,  119,  121,  121,  121,  121,  121,  121,
  343.       121,   68,  110,   97,  102,  119,  122,  122,  122,  122,
  344.       122,  122,  122,  122,  121,  121,  121,  121,  121,  121,
  345.       121,  121,  122,  122,  122,  122,  122,   60,  122,  122,
  346.       121,  121,  121,  121,  121,  121,  121,   60,  122,  122,
  347.       122,   72,  122,  122,  122,  121,  121,  121,  121,  121,
  348.        72,  121,   66,  122,  122,  122,  122,  122,  121,  121,
  349.        66,  121,  121,  121,  122,  122,   71,  122,  122,  121,
  350.       121,  121,  121,   71,  122,  122,   56,   55,   56,   55,
  351.       121,  121,  122,  122,  121,  121,  122,  122,  121,  121,
  352.  
  353.       122,  122,  121,  121,  122,  122,  121,  121,  122,  122,
  354.       121,  121,  122,  122,  121,  121,   65,  122,   65,  121,
  355.       122,  121,   67,   67,    0
  356.     } ;
  357.  
  358. static const int yy_ec[256] =
  359.     {   0,
  360.         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
  361.         1,    1,    4,    1,    1,    1,    1,    1,    1,    1,
  362.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  363.         1,    2,    5,    6,    1,    7,    8,    9,    1,   10,
  364.        11,   12,   13,   14,   15,   16,   17,   18,   19,   19,
  365.        19,   19,   19,   19,   19,   19,   19,   20,   21,   22,
  366.        23,   24,   25,    1,   26,   27,   28,   29,   30,   31,
  367.        32,   33,   34,   35,   36,   37,   38,   39,   40,   41,
  368.        42,   43,   44,   45,   46,   47,   16,   48,   49,   50,
  369.        51,   16,   52,    1,   53,    1,   54,   55,   56,   57,
  370.  
  371.        58,   59,   60,   61,   62,   16,   63,   64,   65,   66,
  372.        67,   68,   16,   69,   70,   71,   72,   16,   16,   73,
  373.        16,   74,   75,   76,   77,   78,    1,    1,    1,    1,
  374.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  375.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  376.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  377.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  378.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  379.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  380.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  381.  
  382.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  383.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  384.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  385.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  386.         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
  387.         1,    1,    1,    1,    1
  388.     } ;
  389.  
  390. static const int yy_meta[79] =
  391.     {   0,
  392.         1,    1,    2,    1,    1,    1,    3,    1,    1,    1,
  393.         1,    1,    3,    4,    3,    5,    5,    6,    6,    3,
  394.         1,    1,    4,    1,    1,    6,    6,    6,    6,    6,
  395.         6,    5,    5,    5,    5,    6,    5,    6,    5,    5,
  396.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  397.         3,    3,    5,    6,    6,    6,    6,    6,    6,    5,
  398.         5,    5,    6,    5,    6,    5,    5,    5,    5,    5,
  399.         5,    5,    6,    5,    1,    1,    1,    3
  400.     } ;
  401.  
  402. static const short int yy_base[838] =
  403.     {   0,
  404.         0,    0,    0,    0,   78,    0,  150,    0,  217,    0,
  405.       295,    0, 1533, 1534, 1534, 1534, 1534, 1534, 1509, 1525,
  406.       356, 1534,  149, 1534, 1534, 1507, 1506,    0, 1505,    0,
  407.       147,  398, 1454,    0, 1534,  138, 1503,  139, 1534,  362,
  408.       137,  124,  346,  126,  358, 1482, 1487, 1484,  145,  170,
  409.       163,  155, 1479, 1475,  388, 1494,    0,    0,  323, 1461,
  410.      1449, 1455, 1534,  354, 1534,    0, 1534, 1534, 1534, 1493,
  411.      1509,  454, 1534,  370, 1534, 1534, 1491, 1490, 1534, 1489,
  412.         0,  382,  496, 1438, 1534, 1534,  189, 1487,  192, 1534,
  413.       552,  413,  414,  408, 1475, 1534, 1534,  433, 1446, 1534,
  414.  
  415.       400, 1534,    0,  600,  428,  429,  501,  468,  558,  602,
  416.       482,  607, 1464, 1469, 1466,  409,  371,  439,  357, 1461,
  417.      1457,  603, 1476,  624,  539, 1443, 1431,  672, 1534, 1534,
  418.         0, 1534,  714, 1534, 1534,  762,    0, 1534,    0,    0,
  419.      1426, 1534,  804,  470,  462,  450,  521,  547,  368, 1472,
  420.      1454, 1450, 1465, 1451,  536,  612,  568,  626,  104, 1439,
  421.      1423, 1433, 1534, 1484, 1534,    0,    0, 1416, 1534, 1534,
  422.      1534,    0,    0, 1534,    0,    0,  642, 1465, 1534,    0,
  423.      1534, 1464,  336,  359, 1452,    0, 1445, 1439,  406, 1453,
  424.       443, 1452, 1436, 1443, 1439, 1435, 1437, 1439,  633, 1436,
  425.  
  426.      1435, 1432, 1434, 1423,  504, 1436, 1424, 1438, 1427, 1440,
  427.       514, 1425, 1414, 1437, 1418, 1418,  492, 1394, 1399, 1384,
  428.      1534, 1534,    0,  852, 1384, 1534, 1534,    0, 1383, 1382,
  429.      1534, 1534,  645, 1534,  639,  667,  709,    0,    0, 1420,
  430.         0,  710,  722, 1405, 1415, 1401,  729, 1376,  791,  659,
  431.         0,  830,  747, 1409, 1403,  573, 1417,  858, 1416, 1400,
  432.      1407, 1403, 1399, 1401, 1403,  678, 1400, 1399, 1396, 1398,
  433.       512, 1401, 1389, 1403, 1392, 1405,  596, 1390, 1403, 1384,
  434.      1384,  866, 1360, 1365,    0, 1351,    0,    0,    0,  919,
  435.      1350,    0,  566,  648,  686,    0,    0, 1388,  757, 1387,
  436.  
  437.      1391, 1376, 1374, 1391, 1378, 1386, 1387, 1385, 1366,  768,
  438.      1349, 1353, 1340, 1338, 1353, 1341, 1348, 1348, 1534, 1534,
  439.      1363,  425, 1370, 1373, 1370, 1355, 1345, 1362,  347, 1354,
  440.      1333, 1333, 1340, 1311, 1292,    0, 1300, 1296, 1289, 1302,
  441.      1301,    0, 1292, 1286, 1293, 1289, 1296, 1286, 1283, 1278,
  442.      1295, 1280, 1277, 1278, 1290, 1276, 1281, 1285, 1249,    0,
  443.         0, 1257, 1296, 1273,  885, 1280,  769, 1266, 1270, 1279,
  444.      1241, 1249,  916, 1278, 1275, 1260, 1254, 1276,  790, 1273,
  445.      1257, 1262, 1272, 1269, 1250,    0, 1258, 1254, 1247, 1260,
  446.      1259,    0, 1245, 1247, 1251, 1241, 1238, 1233, 1249, 1229,
  447.  
  448.      1223, 1219, 1218, 1223, 1227,    0,    0,  861,  975, 1218,
  449.       656, 1227, 1215,    0, 1217, 1209, 1224, 1222, 1221, 1213,
  450.      1204, 1209, 1180, 1178,    0, 1180, 1173, 1186, 1184, 1183,
  451.      1169, 1202,    0, 1199, 1201,    0, 1191,    0, 1190, 1195,
  452.      1188, 1183,    0, 1186, 1200, 1188, 1182,    0, 1182, 1181,
  453.         0, 1182,    0, 1184, 1197, 1188, 1175, 1183, 1185,    0,
  454.      1190, 1183, 1171, 1175, 1169, 1174, 1177, 1142, 1138, 1167,
  455.         0, 1164, 1162,    0, 1169, 1151, 1121, 1117, 1147,    0,
  456.      1137,    0, 1136, 1135, 1130,    0, 1133, 1147, 1135, 1129,
  457.         0, 1129, 1128,    0, 1129, 1131, 1136, 1123, 1131, 1133,
  458.  
  459.         0, 1138, 1131, 1119, 1118, 1128, 1131,  897, 1123, 1115,
  460.      1119,    0,    0, 1131, 1034,    0,    0, 1113, 1121,    0,
  461.      1126, 1089,    0, 1098, 1111,    0,    0, 1082,    0, 1104,
  462.         0,    0, 1106, 1118, 1117,    0,    0,    0, 1093,    0,
  463.      1116,    0, 1111, 1094, 1116, 1112, 1101, 1094, 1112, 1108,
  464.      1098, 1090,    0, 1098, 1082, 1100, 1081, 1052, 1059, 1068,
  465.         0, 1078, 1078, 1075, 1033, 1045,    0, 1060, 1072,    0,
  466.         0,    0, 1048,    0, 1071,    0, 1066, 1049, 1071, 1057,
  467.      1050, 1068, 1064, 1059, 1051,    0, 1044, 1062, 1043, 1041,
  468.         0, 1048, 1040,    0, 1188,    0, 1056, 1057, 1010, 1010,
  469.  
  470.         0, 1265,    0, 1035, 1033, 1025, 1048, 1048, 1045,    0,
  471.         0, 1029,    0,    0, 1020, 1023, 1041, 1017, 1030, 1015,
  472.      1026,    0,    0,  995, 1012, 1019, 1034,    0, 1009,  990,
  473.      1007, 1008, 1000, 1024, 1021,    0,    0, 1005,    0,  996,
  474.       998, 1011,  984,  989,  986,    0,    0,  981,  985,    0,
  475.         0,  979,  952,    0,  992,  993,  980,    0,  979,    0,
  476.         0,  541,    0,    0,  989,  973,  983,    0,  957,  953,
  477.       983,    0,  979,  953,  949,  981,  968,  967,    0,    0,
  478.       690,    0,    0,  971,  955,    0,  968,  968,  966,  937,
  479.         0,  946,  963,  951,  945,  947,  952,    0,  955,    0,
  480.  
  481.       925,    0,  950,    0,  914,  926,  943,  931,  925,  927,
  482.       932,    0,    0,    0,    0,    0,  925,  929,  925,  933,
  483.       915,  913,  927,  897,  918,  889,  902,  906,  902,  911,
  484.       889,  884,  877,  889,  878,  883,  875,    0,  876,  846,
  485.       872,  843,  855,  862,  851,  854,  848,    0,  841,  849,
  486.       836,    0,  847,  842,  807,  827,  793,  806,  821,  808,
  487.         0,  820,    0,  800,  790,  794,  793,  756,  772,  744,
  488.         0,  766,  754,  759,  749,  774,    0,  753,  717,  742,
  489.       712,  725,  749,    0,  720,  726,    0,    0,    0,    0,
  490.       718,  724,  711,  720,  699,  698,  696,  685,  682,  678,
  491.  
  492.       690,  686,  659,  643,  629,  625,  610,  609,  579,  568,
  493.       136,  168,  362,  412,  431,  456,    0,  463,    0,  516,
  494.       529,  547,    0,    0, 1534, 1342, 1348, 1352, 1356,  593,
  495.      1358, 1362, 1368, 1374, 1380, 1386, 1392
  496.     } ;
  497.  
  498. static const short int yy_def[838] =
  499.     {   0,
  500.       826,  826,  825,    3,  825,    5,    5,    7,  825,    9,
  501.       825,   11,  825,  825,  825,  825,  825,  825,  825,  827,
  502.       828,  825,  825,  825,  825,  825,  828,  828,  828,  828,
  503.       828,  828,   32,  828,  825,  825,  828,  825,  825,   32,
  504.        32,   32,   32,   32,   32,  828,  828,  828,  828,  828,
  505.       828,  828,  828,  828,  828,  828,  828,  828,   32,  828,
  506.       828,  828,  825,  825,  825,  828,  825,  825,  825,  825,
  507.       827,  829,  825,  825,  825,  825,  825,  825,  825,  825,
  508.       829,  829,  825,   83,  825,  825,  825,  825,  825,  825,
  509.       829,   91,   91,  829,  829,  825,  825,   91,  829,  825,
  510.  
  511.       825,  825,  829,  829,  830,  830,  104,  104,  104,  104,
  512.       104,  104,  829,  829,  829,  829,  829,  829,  829,  829,
  513.       829,  829,  829,  104,  104,  829,  829,  831,  825,  825,
  514.       831,  825,  831,  825,  825,  832,  833,  825,  832,   83,
  515.        83,  825,  832,  143,  143,  143,  143,  143,  832,  832,
  516.       832,  832,  832,  832,  143,  143,  143,  143,  832,  832,
  517.       832,  832,  825,  827,  825,  828,   32,   32,  825,  825,
  518.       825,  828,  828,  825,  828,  828,   32,  825,  825,  828,
  519.       825,  825,   32,   32,  828,  828,  828,  828,  828,  828,
  520.        32,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  521.  
  522.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  523.       828,  828,  828,  828,  828,  828,   32,  828,  828,  828,
  524.       825,  825,  829,  829,  224,  825,  825,  829,   83,   83,
  525.       825,  825,  106,  825,   91,   91,   91,  829,  829,  829,
  526.       829,   91,   91,  829,  829,  829,   91,  829,  104,  104,
  527.       106,  104,  104,  829,  829,  829,  829,  104,  829,  829,
  528.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  529.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  530.       829,  104,  829,  829,  831,  133,  133,  831,  832,  832,
  531.       290,  833,  143,  143,  143,  832,  832,  832,  143,  832,
  532.  
  533.       832,  832,  832,  832,  832,  832,  832,  832,  832,  143,
  534.       832,  832,  832,  832,  832,  832,  832,  832,  825,  825,
  535.       828,   32,  828,  828,  828,  828,  828,  828,   32,  828,
  536.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  537.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  538.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  539.       828,  828,  104,  829,   91,  829,   91,  829,  829,  829,
  540.       829,  829,  104,  829,  829,  829,  829,  829,  104,  829,
  541.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  542.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  543.  
  544.       829,  829,  829,  829,  829,  829,  829,  133,  832,  832,
  545.       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  546.       832,  832,  832,  832,  832,  832,  832,  832,  832,  832,
  547.       832,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  548.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  549.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  550.       828,  828,  828,  828,  828,  828,  828,  828,  828,  829,
  551.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  552.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  553.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  554.  
  555.       829,  829,  829,  829,  829,  829,  829,  409,  832,  832,
  556.       832,  832,  832,  832,  834,  832,  832,  832,  832,  832,
  557.       832,  832,  832,  832,  835,  832,  832,  832,  832,  828,
  558.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  559.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  560.       828,  828,  828,  828,  828,  828,  828,  828,  828,  829,
  561.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  562.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  563.       829,  829,  829,  829,  829,  829,  829,  829,  829,  832,
  564.       832,  832,  832,  836,  834,  832,  832,  832,  832,  832,
  565.  
  566.       837,  835,  832,  828,  828,  828,  828,  828,  828,  828,
  567.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  568.       828,  828,  828,  828,  828,  829,  829,  829,  829,  829,
  569.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  570.       829,  829,  829,  829,  829,  829,  829,  832,  832,  832,
  571.       832,  832,  832,  832,  828,  828,  828,  828,  828,  828,
  572.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  573.       829,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  574.       829,  829,  829,  829,  829,  829,  832,  832,  832,  832,
  575.       828,  828,  828,  828,  828,  828,  828,  828,  828,  828,
  576.  
  577.       828,  829,  829,  829,  829,  829,  829,  829,  829,  829,
  578.       829,  829,  832,  832,  832,  832,  828,  828,  828,  828,
  579.       828,  828,  828,  828,  829,  829,  829,  829,  829,  829,
  580.       829,  829,  828,  828,  828,  828,  828,  828,  828,  828,
  581.       829,  829,  829,  829,  829,  829,  829,  829,  828,  828,
  582.       828,  828,  828,  828,  828,  829,  829,  829,  829,  829,
  583.       829,  829,  828,  828,  828,  828,  828,  828,  829,  829,
  584.       829,  829,  829,  829,  828,  828,  828,  828,  828,  829,
  585.       829,  829,  829,  829,  828,  828,  828,  828,  829,  829,
  586.       829,  829,  828,  828,  829,  829,  828,  828,  829,  829,
  587.  
  588.       828,  828,  829,  829,  828,  828,  829,  829,  828,  828,
  589.       829,  829,  828,  828,  829,  829,  828,  828,  829,  829,
  590.       828,  829,  828,  829,    0,  825,  825,  825,  825,  825,
  591.       825,  825,  825,  825,  825,  825,  825
  592.     } ;
  593.  
  594. static const short int yy_nxt[1613] =
  595.     {   0,
  596.        15,   16,   17,   18,   19,   20,   21,   22,   23,   24,
  597.        25,   26,   27,   28,   29,   30,   31,   32,   33,   34,
  598.        35,   36,   37,   38,   39,   40,   41,   42,   43,   44,
  599.        45,   46,   47,   48,   30,   30,   49,   50,   51,   52,
  600.        53,   54,   30,   55,   56,   30,   30,   30,   30,   30,
  601.        57,   58,   30,   59,   33,   33,   33,   33,   33,   30,
  602.        30,   30,   30,   60,   30,   30,   61,   30,   30,   62,
  603.        30,   30,   30,   30,   63,   64,   65,   66,   67,   68,
  604.        17,   69,   70,   71,   72,   73,   74,   75,   76,   77,
  605.        78,   79,   80,   81,   82,   83,   84,   85,   86,   87,
  606.  
  607.        88,   89,   90,   91,   92,   92,   93,   92,   92,   81,
  608.        81,   81,   81,   81,   81,   81,   94,   81,   81,   81,
  609.        81,   95,   81,   81,   81,   81,   81,   81,   96,   97,
  610.        81,   98,   92,   92,   92,   92,   92,   81,   81,   81,
  611.        81,   81,   81,   81,   81,   81,   81,   99,   81,   81,
  612.        81,   81,  100,  101,  102,  103,  104,  169,  174,  178,
  613.       179,  181,  182,  189,  193,  314,  190,  105,  106,  175,
  614.       315,  170,  815,  187,  200,  107,  108,  109,  110,  111,
  615.       112,  113,  114,  115,  201,  188,  116,  117,  118,  119,
  616.       120,  121,  204,  122,  123,  202,  166,  206,  166,  203,
  617.  
  618.       207,  208,  205,  124,  125,  125,  125,  125,  125,  166,
  619.       178,  179,  816,  126,  181,  182,  127,   67,   67,   14,
  620.        67,   67,   67,  128,   67,   67,   67,   67,   67,  129,
  621.        67,  130,  131,  131,  105,  106,   67,   67,   67,  132,
  622.        67,   67,  133,  133,  133,  133,  133,  133,  131,  131,
  623.       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
  624.       131,  131,  131,  131,  131,  131,  131,   67,   67,  131,
  625.       133,  133,  133,  133,  133,  133,  131,  131,  131,  131,
  626.       131,  131,  131,  131,  131,  131,  131,  131,  131,  131,
  627.       131,   67,   67,   67,  131,   15,   16,  134,  135,   15,
  628.  
  629.        15,  136,   15,   15,   15,   15,  137,   15,  138,   15,
  630.       139,  139,  140,  141,   15,   15,   15,  142,   15,   15,
  631.       143,  144,  145,  146,  147,  148,  139,  139,  139,  139,
  632.       139,  149,  139,  150,  151,  152,  139,  139,  153,  154,
  633.       139,  139,  139,  139,  139,   15,   15,  139,  155,  146,
  634.       156,  146,  157,  158,  139,  139,  139,  139,  159,  139,
  635.       160,  161,  139,  139,  162,  139,  139,  139,  139,   15,
  636.        15,   15,  139,  167,  168,  191,  221,  217,  169,  321,
  637.       440,  168,  168,  168,  168,  168,  168,  322,  183,  192,
  638.       184,  194,  170,  174,  195,  166,  269,  196,  185,  272,
  639.  
  640.       270,  303,  273,  274,  228,  817,  186,  304,  166,  168,
  641.       168,  168,  168,  168,  168,  168,  168,  211,  166,  166,
  642.       212,  213,  221,  168,  168,  168,  168,  168,  168,  222,
  643.       166,  166,  214,  176,  166,  176,  215,  244,  267,  242,
  644.       242,  242,  242,  243,  326,  818,  327,  245,  268,  223,
  645.       223,  168,  168,  168,  168,  168,  168,  223,  223,  242,
  646.       176,  242,  176,  232,  232,  232,  232,  433,  244,  223,
  647.       177,  224,  225,  329,  819,  222,  295,  223,  271,  225,
  648.       225,  225,  225,  225,  225,  250,  289,  247,  295,  820,
  649.       232,  232,  232,  232,  300,  299,  295,  166,  289,  250,
  650.  
  651.       233,  825,  821,  239,  254,  239,  289,  225,  225,  225,
  652.       225,  225,  225,  229,  229,  166,  255,  239,  250,  239,
  653.       260,  229,  230,  229,  230,  229,  229,  252,  231,  253,
  654.       239,  232,  239,  232,  345,  231,  239,  240,  239,  352,
  655.       346,  353,  394,  231,  239,  241,  239,  295,  369,  229,
  656.       229,  229,  229,  229,  229,  822,  250,  289,  232,  301,
  657.       232,  359,  295,  239,  166,  239,  695,  823,  233,  235,
  658.       235,  696,  289,  295,  239,  250,  239,  235,  236,  235,
  659.       237,  235,  235,  289,  238,  824,  302,  239,  240,  239,
  660.       310,  238,  295,  239,  295,  239,  241,  256,  251,  238,
  661.  
  662.       257,  239,  289,  239,  289,  235,  235,  235,  235,  235,
  663.       235,  376,  814,  377,  239,  813,  239,  249,  250,  250,
  664.       239,  400,  239,  401,  250,  250,  250,  250,  250,  250,
  665.       250,  258,  277,  312,  812,  278,  246,  239,  295,  239,
  666.       261,  250,  239,  262,  239,  259,  263,  279,  289,  811,
  667.       810,  280,  295,  250,  250,  250,  250,  250,  250,  239,
  668.       337,  239,  289,  338,  239,  242,  239,  242,  809,  239,
  669.       808,  239,  311,  339,  295,  223,  250,  166,  282,  166,
  670.       825,  510,  825,  223,  289,  807,  239,  511,  239,  286,
  671.       287,  410,  313,  242,  239,  242,  239,  287,  287,  287,
  672.  
  673.       287,  287,  287,  223,  166,  387,  166,  825,  388,  825,
  674.       364,  223,  295,  806,  166,  709,  805,  804,  389,  803,
  675.       710,  239,  289,  239,  802,  287,  287,  287,  287,  287,
  676.       287,  287,  287,  801,  800,  242,  242,  365,  242,  287,
  677.       287,  287,  287,  287,  287,  223,  223,  799,  242,  288,
  678.       242,  288,  367,  223,  223,  242,  798,  242,  223,  797,
  679.       796,  795,  794,  793,  250,  223,  223,  287,  287,  287,
  680.       287,  287,  287,  223,  792,  373,  288,  791,  288,  290,
  681.       291,  790,  239,  295,  239,  789,  788,  291,  291,  291,
  682.       291,  291,  291,  289,  295,  242,  787,  242,  371,  786,
  683.  
  684.       412,  785,  473,  784,  289,  223,  783,  250,  250,  239,
  685.       782,  239,  781,  223,  780,  291,  291,  291,  291,  291,
  686.       291,  293,  293,  473,  779,  239,  239,  239,  239,  293,
  687.       294,  293,  295,  293,  293,  778,  296,  423,  777,  297,
  688.       298,  297,  776,  296,  775,  774,  773,  250,  772,  771,
  689.       770,  296,  239,  239,  239,  239,  769,  293,  293,  293,
  690.       293,  293,  293,  363,  768,  239,  297,  239,  297,  225,
  691.       225,  767,  766,  364,  765,  250,  764,  225,  225,  225,
  692.       225,  225,  225,  250,  763,  762,  761,  239,  379,  239,
  693.       760,  759,  239,  239,  239,  239,  285,  758,  285,  757,
  694.  
  695.       756,  239,  755,  239,  754,  225,  225,  225,  225,  225,
  696.       225,  242,  753,  242,  239,  752,  239,  751,  750,  749,
  697.       239,  223,  239,  285,  363,  285,  748,  471,  239,  223,
  698.       239,  747,  297,  250,  297,  371,  291,  291,  746,  745,
  699.       744,  743,  742,  741,  291,  291,  291,  291,  291,  291,
  700.       740,  239,  739,  239,  297,  738,  297,  737,  471,  297,
  701.       736,  297,  735,  734,  733,  732,  731,  730,  729,  728,
  702.       727,  726,  291,  291,  291,  291,  291,  291,  239,  725,
  703.       239,  297,  724,  297,  723,  722,  721,  720,  719,  718,
  704.       717,  409,  508,  508,  716,  715,  714,  713,  712,  711,
  705.  
  706.       508,  508,  508,  508,  508,  508,  708,  707,  706,  705,
  707.       704,  703,  702,  701,  700,  699,  698,  697,  694,  693,
  708.       692,  691,  690,  689,  688,  687,  686,  685,  508,  508,
  709.       508,  508,  508,  508,  594,  594,  684,  594,  594,  594,
  710.       683,  594,  594,  594,  594,  594,  682,  594,  681,  680,
  711.       679,  678,  677,  676,  594,  594,  594,  594,  594,  675,
  712.       674,  673,  672,  671,  670,  669,  668,  667,  666,  665,
  713.       664,  663,  662,  661,  660,  659,  658,  657,  656,  655,
  714.       654,  653,  652,  651,  650,  649,  648,  647,  646,  645,
  715.       644,  643,  642,  641,  640,  639,  638,  637,  636,  635,
  716.  
  717.       634,  633,  632,  631,  630,  629,  628,  627,  594,  594,
  718.       594,  601,  601,  626,  601,  601,  601,  625,  601,  601,
  719.       601,  601,  601,  624,  601,  623,  622,  621,  620,  619,
  720.       618,  601,  601,  601,  601,  601,  617,  616,  615,  614,
  721.       613,  612,  611,  610,  609,  608,  607,  606,  605,  604,
  722.       603,  600,  599,  598,  597,  596,  593,  592,  591,  590,
  723.       589,  588,  587,  586,  585,  584,  583,  582,  581,  580,
  724.       579,  578,  577,  576,  575,  574,  573,  572,  571,  570,
  725.       569,  568,  567,  566,  565,  601,  601,  601,  594,  594,
  726.       564,  594,  594,  594,  563,  594,  594,  594,  594,  594,
  727.  
  728.       562,  594,  561,  560,  559,  558,  557,  556,  594,  594,
  729.       594,  594,  594,  555,  554,  553,  552,  551,  550,  549,
  730.       548,  547,  546,  545,  544,  543,  542,  541,  540,  539,
  731.       538,  537,  536,  535,  534,  533,  532,  531,  530,  529,
  732.       528,  527,  526,  525,  524,  523,  522,  521,  520,  519,
  733.       518,  517,  516,  515,  514,  513,  512,  509,  507,  506,
  734.       505,  504,  594,  594,  594,  601,  601,  503,  601,  601,
  735.       601,  502,  601,  601,  601,  601,  601,  501,  601,  500,
  736.       499,  498,  497,  496,  495,  601,  601,  601,  601,  601,
  737.       494,  493,  492,  491,  490,  489,  488,  487,  486,  485,
  738.  
  739.       484,  483,  482,  481,  480,  479,  478,  477,  476,  475,
  740.       474,  472,  470,  250,  469,  468,  467,  466,  465,  464,
  741.       463,  462,  461,  460,  459,  458,  457,  456,  455,  454,
  742.       453,  452,  451,  450,  449,  448,  447,  446,  445,  601,
  743.       601,  601,   14,   14,   14,   14,   14,   14,  164,  164,
  744.       164,  164,  164,  164,  166,  166,  166,  166,  223,  223,
  745.       223,  223,  285,  285,  289,  444,  289,  289,  292,  443,
  746.       292,  292,  292,  292,  595,  442,  595,  595,  595,  595,
  747.       602,  441,  602,  602,  602,  602,  594,  439,  594,  594,
  748.       594,  594,  601,  438,  601,  601,  601,  601,  437,  436,
  749.  
  750.       435,  434,  432,  431,  430,  429,  428,  427,  426,  425,
  751.       424,  422,  421,  420,  419,  418,  417,  416,  415,  414,
  752.       413,  411,  289,  408,  407,  406,  405,  404,  403,  402,
  753.       399,  398,  397,  396,  395,  393,  392,  391,  390,  386,
  754.       385,  384,  383,  382,  381,  380,  378,  375,  374,  372,
  755.       370,  369,  368,  366,  825,  825,  223,  362,  361,  360,
  756.       358,  357,  356,  355,  354,  351,  350,  349,  348,  347,
  757.       344,  343,  342,  341,  340,  336,  335,  334,  333,  332,
  758.       331,  330,  328,  325,  324,  323,  320,  319,  166,  165,
  759.       318,  317,  316,  309,  308,  307,  306,  305,  825,  284,
  760.  
  761.       283,  281,  276,  275,  266,  265,  264,  248,  246,  234,
  762.       825,  227,  226,  171,  165,  163,  220,  219,  218,  216,
  763.       210,  209,  199,  198,  197,  180,  166,  173,  172,  171,
  764.       165,  163,  825,   13,  825,  825,  825,  825,  825,  825,
  765.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  766.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  767.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  768.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  769.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  770.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  771.  
  772.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  773.       825,  825
  774.     } ;
  775.  
  776. static const short int yy_chk[1613] =
  777.     {   0,
  778.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  779.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  780.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  781.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  782.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  783.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  784.         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
  785.         3,    3,    3,    3,    3,    3,    3,    3,    5,    5,
  786.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  787.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  788.  
  789.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  790.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  791.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  792.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  793.         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
  794.         5,    5,    5,    5,    5,    5,    7,   23,   31,   36,
  795.        36,   38,   38,   42,   44,  159,   42,    7,    7,   31,
  796.       159,   23,  811,   41,   49,    7,    7,    7,    7,    7,
  797.         7,    7,    7,    7,   49,   41,    7,    7,    7,    7,
  798.         7,    7,   51,    7,    7,   50,   42,   52,   44,   50,
  799.  
  800.        52,   52,   51,    7,    7,    7,    7,    7,    7,   41,
  801.        87,   87,  812,    7,   89,   89,    7,    9,    9,    9,
  802.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  803.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  804.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  805.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  806.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  807.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  808.         9,    9,    9,    9,    9,    9,    9,    9,    9,    9,
  809.         9,    9,    9,    9,    9,   11,   11,   11,   11,   11,
  810.  
  811.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  812.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  813.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  814.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  815.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  816.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  817.        11,   11,   11,   11,   11,   11,   11,   11,   11,   11,
  818.        11,   11,   11,   21,   21,   43,   64,   59,   74,  183,
  819.       329,   21,   21,   21,   21,   21,   21,  184,   40,   43,
  820.        40,   45,   74,   82,   45,   59,  117,   45,   40,  119,
  821.  
  822.       117,  149,  119,  119,   82,  813,   40,  149,  183,   21,
  823.        21,   21,   21,   21,   21,   32,   32,   55,   43,  329,
  824.        55,   55,  101,   32,   32,   32,   32,   32,   32,   64,
  825.        45,  184,   55,   32,   40,   32,   55,   94,  116,   92,
  826.        93,   92,   93,   93,  189,  814,  189,   94,  116,   92,
  827.        93,   32,   32,   32,   32,   32,   32,   92,   93,   98,
  828.        32,   98,   32,  105,  106,  105,  106,  322,  118,   98,
  829.        32,   72,   72,  191,  815,  101,  146,   98,  118,   72,
  830.        72,   72,   72,   72,   72,  108,  146,   98,  145,  816,
  831.       105,  106,  105,  106,  145,  144,  144,  322,  145,  111,
  832.  
  833.       105,  106,  818,  108,  108,  108,  144,   72,   72,   72,
  834.        72,   72,   72,   83,   83,  191,  108,  111,  107,  111,
  835.       111,   83,   83,   83,   83,   83,   83,  107,   83,  107,
  836.       108,   83,  108,   83,  205,   83,  107,  107,  107,  211,
  837.       205,  211,  271,   83,  111,  107,  111,  147,  271,   83,
  838.        83,   83,   83,   83,   83,  820,  125,  147,   83,  147,
  839.        83,  217,  155,  107,  217,  107,  662,  821,   83,   91,
  840.        91,  662,  155,  148,  125,  109,  125,   91,   91,   91,
  841.        91,   91,   91,  148,   91,  822,  148,   91,   91,   91,
  842.       155,   91,  293,  109,  157,  109,   91,  109,  830,   91,
  843.  
  844.       109,  125,  293,  125,  157,   91,   91,   91,   91,   91,
  845.        91,  256,  810,  256,   91,  809,   91,  104,  104,  110,
  846.       109,  277,  109,  277,  112,  104,  104,  104,  104,  104,
  847.       104,  110,  122,  157,  808,  122,  122,  110,  156,  110,
  848.       112,  124,  112,  112,  112,  110,  112,  122,  156,  807,
  849.       806,  122,  158,  104,  104,  104,  104,  104,  104,  124,
  850.       199,  124,  158,  199,  110,  235,  110,  235,  805,  112,
  851.       804,  112,  156,  199,  294,  235,  250,  177,  124,  177,
  852.       233,  411,  233,  235,  294,  803,  124,  411,  124,  128,
  853.       128,  294,  158,  236,  250,  236,  250,  128,  128,  128,
  854.  
  855.       128,  128,  128,  236,  177,  266,  177,  233,  266,  233,
  856.       236,  236,  295,  802,  177,  681,  801,  800,  266,  799,
  857.       681,  250,  295,  250,  798,  128,  128,  128,  128,  128,
  858.       128,  133,  133,  797,  796,  237,  242,  237,  242,  133,
  859.       133,  133,  133,  133,  133,  237,  242,  795,  243,  133,
  860.       243,  133,  243,  237,  242,  247,  794,  247,  243,  793,
  861.       792,  791,  786,  785,  253,  247,  243,  133,  133,  133,
  862.       133,  133,  133,  247,  783,  253,  133,  782,  133,  136,
  863.       136,  781,  253,  299,  253,  780,  779,  136,  136,  136,
  864.       136,  136,  136,  299,  310,  367,  778,  367,  247,  776,
  865.  
  866.       299,  775,  367,  774,  310,  367,  773,  379,  249,  253,
  867.       772,  253,  770,  367,  769,  136,  136,  136,  136,  136,
  868.       136,  143,  143,  379,  768,  379,  249,  379,  249,  143,
  869.       143,  143,  143,  143,  143,  767,  143,  310,  766,  143,
  870.       143,  143,  765,  143,  764,  762,  760,  252,  759,  758,
  871.       757,  143,  379,  249,  379,  249,  756,  143,  143,  143,
  872.       143,  143,  143,  249,  755,  252,  143,  252,  143,  224,
  873.       224,  754,  753,  252,  751,  258,  750,  224,  224,  224,
  874.       224,  224,  224,  282,  749,  747,  746,  224,  258,  224,
  875.       745,  744,  252,  258,  252,  258,  408,  743,  408,  742,
  876.  
  877.       741,  282,  740,  282,  739,  224,  224,  224,  224,  224,
  878.       224,  365,  737,  365,  224,  736,  224,  735,  734,  733,
  879.       258,  365,  258,  408,  224,  408,  732,  365,  282,  365,
  880.       282,  731,  508,  373,  508,  282,  290,  290,  730,  729,
  881.       728,  727,  726,  725,  290,  290,  290,  290,  290,  290,
  882.       724,  373,  723,  373,  290,  722,  290,  721,  373,  508,
  883.       720,  508,  719,  718,  717,  711,  710,  709,  708,  707,
  884.       706,  705,  290,  290,  290,  290,  290,  290,  373,  703,
  885.       373,  290,  701,  290,  699,  697,  696,  695,  694,  693,
  886.       692,  290,  409,  409,  690,  689,  688,  687,  685,  684,
  887.  
  888.       409,  409,  409,  409,  409,  409,  678,  677,  676,  675,
  889.       674,  673,  671,  670,  669,  667,  666,  665,  659,  657,
  890.       656,  655,  653,  652,  649,  648,  645,  644,  409,  409,
  891.       409,  409,  409,  409,  515,  515,  643,  515,  515,  515,
  892.       642,  515,  515,  515,  515,  515,  641,  515,  640,  638,
  893.       635,  634,  633,  632,  515,  515,  515,  515,  515,  631,
  894.       630,  629,  627,  626,  625,  624,  621,  620,  619,  618,
  895.       617,  616,  615,  612,  609,  608,  607,  606,  605,  604,
  896.       600,  599,  598,  597,  593,  592,  590,  589,  588,  587,
  897.       585,  584,  583,  582,  581,  580,  579,  578,  577,  575,
  898.  
  899.       573,  569,  568,  566,  565,  564,  563,  562,  515,  515,
  900.       515,  525,  525,  560,  525,  525,  525,  559,  525,  525,
  901.       525,  525,  525,  558,  525,  557,  556,  555,  554,  552,
  902.       551,  525,  525,  525,  525,  525,  550,  549,  548,  547,
  903.       546,  545,  544,  543,  541,  539,  535,  534,  533,  530,
  904.       528,  524,  522,  521,  519,  518,  514,  511,  510,  509,
  905.       507,  506,  505,  504,  503,  502,  500,  499,  498,  497,
  906.       496,  495,  493,  492,  490,  489,  488,  487,  485,  484,
  907.       483,  481,  479,  478,  477,  525,  525,  525,  595,  595,
  908.       476,  595,  595,  595,  475,  595,  595,  595,  595,  595,
  909.  
  910.       473,  595,  472,  470,  469,  468,  467,  466,  595,  595,
  911.       595,  595,  595,  465,  464,  463,  462,  461,  459,  458,
  912.       457,  456,  455,  454,  452,  450,  449,  447,  446,  445,
  913.       444,  442,  441,  440,  439,  437,  435,  434,  432,  431,
  914.       430,  429,  428,  427,  426,  424,  423,  422,  421,  420,
  915.       419,  418,  417,  416,  415,  413,  412,  410,  405,  404,
  916.       403,  402,  595,  595,  595,  602,  602,  401,  602,  602,
  917.       602,  400,  602,  602,  602,  602,  602,  399,  602,  398,
  918.       397,  396,  395,  394,  393,  602,  602,  602,  602,  602,
  919.       391,  390,  389,  388,  387,  385,  384,  383,  382,  381,
  920.  
  921.       380,  378,  377,  376,  375,  374,  372,  371,  370,  369,
  922.       368,  366,  364,  363,  362,  359,  358,  357,  356,  355,
  923.       354,  353,  352,  351,  350,  349,  348,  347,  346,  345,
  924.       344,  343,  341,  340,  339,  338,  337,  335,  334,  602,
  925.       602,  602,  826,  826,  826,  826,  826,  826,  827,  827,
  926.       827,  827,  827,  827,  828,  828,  828,  828,  829,  829,
  927.       829,  829,  831,  831,  832,  333,  832,  832,  833,  332,
  928.       833,  833,  833,  833,  834,  331,  834,  834,  834,  834,
  929.       835,  330,  835,  835,  835,  835,  836,  328,  836,  836,
  930.       836,  836,  837,  327,  837,  837,  837,  837,  326,  325,
  931.  
  932.       324,  323,  321,  318,  317,  316,  315,  314,  313,  312,
  933.       311,  309,  308,  307,  306,  305,  304,  303,  302,  301,
  934.       300,  298,  291,  286,  284,  283,  281,  280,  279,  278,
  935.       276,  275,  274,  273,  272,  270,  269,  268,  267,  265,
  936.       264,  263,  262,  261,  260,  259,  257,  255,  254,  248,
  937.       246,  245,  244,  240,  230,  229,  225,  220,  219,  218,
  938.       216,  215,  214,  213,  212,  210,  209,  208,  207,  206,
  939.       204,  203,  202,  201,  200,  198,  197,  196,  195,  194,
  940.       193,  192,  190,  188,  187,  185,  182,  178,  168,  164,
  941.       162,  161,  160,  154,  153,  152,  151,  150,  141,  127,
  942.  
  943.       126,  123,  121,  120,  115,  114,  113,   99,   95,   88,
  944.        84,   80,   78,   77,   71,   70,   62,   61,   60,   56,
  945.        54,   53,   48,   47,   46,   37,   33,   29,   27,   26,
  946.        20,   19,   13,  825,  825,  825,  825,  825,  825,  825,
  947.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  948.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  949.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  950.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  951.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  952.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  953.  
  954.       825,  825,  825,  825,  825,  825,  825,  825,  825,  825,
  955.       825,  825
  956.     } ;
  957.  
  958. static yy_state_type yy_last_accepting_state;
  959. static char *yy_last_accepting_cpos;
  960.  
  961. /* The intent behind this definition is that it'll catch
  962.  * any uses of REJECT which flex missed.
  963.  */
  964. #define REJECT reject_used_but_not_detected
  965. #define yymore() yymore_used_but_not_detected
  966. #define YY_MORE_ADJ 0
  967. char *yytext;
  968. # line 1 "./ldlex.l"
  969. # line 2 "./ldlex.l"
  970.  
  971. /* Copyright (C) 1991, 1992, 1993, 1994 Free Software Foundation, Inc.
  972.  
  973. This file is part of GLD, the Gnu Linker.
  974.  
  975. GLD is free software; you can redistribute it and/or modify
  976. it under the terms of the GNU General Public License as published by
  977. the Free Software Foundation; either version 2, or (at your option)
  978. any later version.
  979.  
  980. GLD is distributed in the hope that it will be useful,
  981. but WITHOUT ANY WARRANTY; without even the implied warranty of
  982. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  983. GNU General Public License for more details.
  984.  
  985. You should have received a copy of the GNU General Public License
  986. along with GLD; see the file COPYING.  If not, write to
  987. the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  */
  988.  
  989. /*
  990. This was written by steve chamberlain
  991.                     sac@cygnus.com
  992. */
  993.  
  994.  
  995. #include <ansidecl.h>
  996. #include <stdio.h>
  997. #include <ctype.h>
  998. #include "bfd.h"
  999. #include "sysdep.h"
  1000. #include "ld.h"
  1001. #include "ldgram.h"
  1002. #include "ldmisc.h"
  1003. #include "ldexp.h"
  1004. #include "ldlang.h"
  1005. #include "ldfile.h"
  1006. #include "ldlex.h"
  1007. #include "ldmain.h"
  1008.  
  1009. /* The type of top-level parser input.
  1010.    yylex and yyparse (indirectly) both check this.  */
  1011. input_type parser_input;
  1012.  
  1013. /* Radix to use for bfd_scan_vma -- 0 (default to base 10) or 16.  */
  1014. int hex_mode;
  1015.  
  1016. /* Line number in the current input file.
  1017.    (FIXME Actually, it doesn't appear to get reset for each file?)  */
  1018. unsigned int lineno = 1;
  1019.  
  1020. /* Support for flex reading from more than one input file (stream).
  1021.    `include_stack' is flex's input state for each open file;
  1022.    `file_name_stack' is the file names.  `lineno_stack' is the current
  1023.    line numbers.
  1024.  
  1025.    If `include_stack_ptr' is 0, we haven't started reading anything yet.
  1026.    Otherwise, stack elements 0 through `include_stack_ptr - 1' are valid.  */
  1027.  
  1028. #undef YY_INPUT
  1029. #define YY_INPUT(buf,result,max_size) yy_input(buf, &result, max_size)
  1030.  
  1031. #define MAX_INCLUDE_DEPTH 10
  1032. static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
  1033. static const char *file_name_stack[MAX_INCLUDE_DEPTH];
  1034. static unsigned int lineno_stack[MAX_INCLUDE_DEPTH];
  1035. static unsigned int include_stack_ptr = 0;
  1036.  
  1037. static YY_BUFFER_STATE yy_create_string_buffer PARAMS ((const char *string,
  1038.                             size_t size));
  1039. static void yy_input PARAMS ((char *, int *result, int max_size));
  1040.  
  1041. static void comment PARAMS ((void));
  1042. static void lex_warn_invalid PARAMS ((char *where, char *what));
  1043.  
  1044. /* STATES 
  1045.     EXPRESSION    definitely in an expression
  1046.     SCRIPT        definitely in a script
  1047.     BOTH        either EXPRESSION or SCRIPT
  1048.     DEFSYMEXP    in an argument to -defsym
  1049.         MRI             in an MRI script
  1050. */
  1051. #define RTOKEN(x)  {  yylval.token = x; return x; }
  1052.  
  1053. /* Some versions of flex want this.  */
  1054. #ifndef yywrap
  1055. int yywrap () { return 1; }
  1056. #endif
  1057.  
  1058. /* Macros after this point can all be overridden by user definitions in
  1059.  * section 1.
  1060.  */
  1061.  
  1062. #ifdef YY_MALLOC_DECL
  1063. YY_MALLOC_DECL
  1064. #else
  1065. #if __STDC__
  1066. #ifndef __cplusplus
  1067. #include <stdlib.h>
  1068. #endif
  1069. #else
  1070. /* Just try to get by without declaring the routines.  This will fail
  1071.  * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
  1072.  * or sizeof(void*) != sizeof(int).
  1073.  */
  1074. #endif
  1075. #endif
  1076.  
  1077. /* Amount of stuff to slurp up with each read. */
  1078. #ifndef YY_READ_BUF_SIZE
  1079. #define YY_READ_BUF_SIZE 8192
  1080. #endif
  1081.  
  1082. /* Copy whatever the last rule matched to the standard output. */
  1083.  
  1084. #ifndef ECHO
  1085. /* This used to be an fputs(), but since the string might contain NUL's,
  1086.  * we now use fwrite().
  1087.  */
  1088. #define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
  1089. #endif
  1090.  
  1091. /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
  1092.  * is returned in "result".
  1093.  */
  1094. #ifndef YY_INPUT
  1095. #define YY_INPUT(buf,result,max_size) \
  1096.     if ( yy_current_buffer->yy_is_interactive ) \
  1097.         { \
  1098.         int c = getc( yyin ); \
  1099.         result = c == EOF ? 0 : 1; \
  1100.         buf[0] = (char) c; \
  1101.         } \
  1102.     else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
  1103.           && ferror( yyin ) ) \
  1104.         YY_FATAL_ERROR( "input in flex scanner failed" );
  1105. #endif
  1106.  
  1107. /* No semi-colon after return; correct usage is to write "yyterminate();" -
  1108.  * we don't want an extra ';' after the "return" because that will cause
  1109.  * some compilers to complain about unreachable statements.
  1110.  */
  1111. #ifndef yyterminate
  1112. #define yyterminate() return YY_NULL
  1113. #endif
  1114.  
  1115. /* Number of entries by which start-condition stack grows. */
  1116. #ifndef YY_START_STACK_INCR
  1117. #define YY_START_STACK_INCR 25
  1118. #endif
  1119.  
  1120. /* Report a fatal error. */
  1121. #ifndef YY_FATAL_ERROR
  1122. #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  1123. #endif
  1124.  
  1125. /* Default declaration of generated scanner - a define so the user can
  1126.  * easily add parameters.
  1127.  */
  1128. #ifndef YY_DECL
  1129. #define YY_DECL int yylex YY_PROTO(( void ))
  1130. #endif
  1131.  
  1132. /* Code executed at the beginning of each rule, after yytext and yyleng
  1133.  * have been set up.
  1134.  */
  1135. #ifndef YY_USER_ACTION
  1136. #define YY_USER_ACTION
  1137. #endif
  1138.  
  1139. /* Code executed at the end of each rule. */
  1140. #ifndef YY_BREAK
  1141. #define YY_BREAK break;
  1142. #endif
  1143.  
  1144. YY_DECL
  1145.     {
  1146.     register yy_state_type yy_current_state;
  1147.     register char *yy_cp, *yy_bp;
  1148.     register int yy_act;
  1149.  
  1150. # line 110 "./ldlex.l"
  1151.  
  1152.  
  1153.   if (parser_input != input_selected)
  1154.     {
  1155.       /* The first token of the input determines the initial parser state.  */
  1156.       input_type t = parser_input;
  1157.       parser_input = input_selected;
  1158.       switch (t)
  1159.     {
  1160.     case input_script: return INPUT_SCRIPT; break;
  1161.     case input_mri_script: return INPUT_MRI_SCRIPT; break;
  1162.     case input_defsym: return INPUT_DEFSYM; break;
  1163.     default: abort ();
  1164.     }
  1165.     }
  1166.  
  1167.  
  1168.     if ( yy_init )
  1169.         {
  1170. #ifdef YY_USER_INIT
  1171.         YY_USER_INIT;
  1172. #endif
  1173.  
  1174.         if ( ! yy_start )
  1175.             yy_start = 1;    /* first start state */
  1176.  
  1177.         if ( ! yyin )
  1178.             yyin = stdin;
  1179.  
  1180.         if ( ! yyout )
  1181.             yyout = stdout;
  1182.  
  1183.         if ( yy_current_buffer )
  1184.             yy_init_buffer( yy_current_buffer, yyin );
  1185.         else
  1186.             yy_current_buffer =
  1187.                 yy_create_buffer( yyin, YY_BUF_SIZE );
  1188.  
  1189.         yy_load_buffer_state();
  1190.  
  1191.         yy_init = 0;
  1192.         }
  1193.  
  1194.     while ( 1 )        /* loops until end-of-file is reached */
  1195.         {
  1196.         yy_cp = yy_c_buf_p;
  1197.  
  1198.         /* Support of yytext. */
  1199.         *yy_cp = yy_hold_char;
  1200.  
  1201.         /* yy_bp points to the position in yy_ch_buf of the start of
  1202.          * the current run.
  1203.          */
  1204.         yy_bp = yy_cp;
  1205.  
  1206.         yy_current_state = yy_start;
  1207. yy_match:
  1208.         do
  1209.             {
  1210.             register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
  1211.             if ( yy_accept[yy_current_state] )
  1212.                 {
  1213.                 yy_last_accepting_state = yy_current_state;
  1214.                 yy_last_accepting_cpos = yy_cp;
  1215.                 }
  1216.             while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  1217.                 {
  1218.                 yy_current_state = (int) yy_def[yy_current_state];
  1219.                 if ( yy_current_state >= 826 )
  1220.                     yy_c = yy_meta[(unsigned int) yy_c];
  1221.                 }
  1222.             yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  1223.             ++yy_cp;
  1224.             }
  1225.         while ( yy_base[yy_current_state] != 1534 );
  1226.  
  1227. yy_find_action:
  1228.         yy_act = yy_accept[yy_current_state];
  1229.  
  1230.         YY_DO_BEFORE_ACTION;
  1231.  
  1232.  
  1233. do_action:    /* This label is used only to access EOF actions. */
  1234.  
  1235.  
  1236.         switch ( yy_act )
  1237.     { /* beginning of action switch */
  1238.             case 0: /* must back up */
  1239.             /* undo the effects of YY_DO_BEFORE_ACTION */
  1240.             *yy_cp = yy_hold_char;
  1241.             yy_cp = yy_last_accepting_cpos;
  1242.             yy_current_state = yy_last_accepting_state;
  1243.             goto yy_find_action;
  1244.  
  1245. case 1:
  1246. YY_USER_ACTION
  1247. # line 126 "./ldlex.l"
  1248. { comment(); }
  1249.     YY_BREAK
  1250. case 2:
  1251. YY_USER_ACTION
  1252. # line 129 "./ldlex.l"
  1253. { RTOKEN('-');}
  1254.     YY_BREAK
  1255. case 3:
  1256. YY_USER_ACTION
  1257. # line 130 "./ldlex.l"
  1258. { RTOKEN('+');}
  1259.     YY_BREAK
  1260. case 4:
  1261. YY_USER_ACTION
  1262. # line 131 "./ldlex.l"
  1263. { yylval.name = buystring(yytext); return NAME; }
  1264.     YY_BREAK
  1265. case 5:
  1266. YY_USER_ACTION
  1267. # line 132 "./ldlex.l"
  1268. { RTOKEN('='); }
  1269.     YY_BREAK
  1270. case 6:
  1271. YY_USER_ACTION
  1272. # line 134 "./ldlex.l"
  1273. {
  1274.                   yylval.integer = bfd_scan_vma (yytext+1, 0,16);
  1275.                 return INT;
  1276.             }
  1277.     YY_BREAK
  1278. case 7:
  1279. YY_USER_ACTION
  1280. # line 139 "./ldlex.l"
  1281. {
  1282.                    int ibase ;
  1283.                    switch (yytext[yyleng-1]) {
  1284.                     case 'X': 
  1285.                     case 'H':
  1286.                      ibase = 16;
  1287.                      break;
  1288.                     case 'O':
  1289.                      ibase = 8;
  1290.                      break;
  1291.                     case 'B':
  1292.                      ibase = 2;
  1293.                      break;
  1294.                     default:
  1295.                      ibase = 10;
  1296.                    }
  1297.                    yylval.integer = bfd_scan_vma (yytext+1, 0,
  1298.                                   ibase);
  1299.                    return INT;
  1300.                  }
  1301.     YY_BREAK
  1302. case 8:
  1303. YY_USER_ACTION
  1304. # line 159 "./ldlex.l"
  1305. {
  1306.                   yylval.integer = bfd_scan_vma (yytext, 0,
  1307.                                  hex_mode);
  1308.                   if (yytext[yyleng-1]=='M'
  1309.                     || yytext[yyleng-1] == 'm') {
  1310.                       yylval.integer *= 1024*1024;
  1311.                     }    
  1312.                   if (yytext[yyleng-1]=='K' 
  1313.                 || yytext[yyleng-1]=='k') {
  1314.                       yylval.integer *= 1024;
  1315.                     }        
  1316.                   return INT;
  1317.                 }
  1318.     YY_BREAK
  1319. case 9:
  1320. YY_USER_ACTION
  1321. # line 172 "./ldlex.l"
  1322. { RTOKEN(']');}
  1323.     YY_BREAK
  1324. case 10:
  1325. YY_USER_ACTION
  1326. # line 173 "./ldlex.l"
  1327. { RTOKEN('[');}
  1328.     YY_BREAK
  1329. case 11:
  1330. YY_USER_ACTION
  1331. # line 174 "./ldlex.l"
  1332. { RTOKEN(LSHIFTEQ);}
  1333.     YY_BREAK
  1334. case 12:
  1335. YY_USER_ACTION
  1336. # line 175 "./ldlex.l"
  1337. { RTOKEN(RSHIFTEQ);}
  1338.     YY_BREAK
  1339. case 13:
  1340. YY_USER_ACTION
  1341. # line 176 "./ldlex.l"
  1342. { RTOKEN(OROR);}
  1343.     YY_BREAK
  1344. case 14:
  1345. YY_USER_ACTION
  1346. # line 177 "./ldlex.l"
  1347. { RTOKEN(EQ);}
  1348.     YY_BREAK
  1349. case 15:
  1350. YY_USER_ACTION
  1351. # line 178 "./ldlex.l"
  1352. { RTOKEN(NE);}
  1353.     YY_BREAK
  1354. case 16:
  1355. YY_USER_ACTION
  1356. # line 179 "./ldlex.l"
  1357. { RTOKEN(GE);}
  1358.     YY_BREAK
  1359. case 17:
  1360. YY_USER_ACTION
  1361. # line 180 "./ldlex.l"
  1362. { RTOKEN(LE);}
  1363.     YY_BREAK
  1364. case 18:
  1365. YY_USER_ACTION
  1366. # line 181 "./ldlex.l"
  1367. { RTOKEN(LSHIFT);}
  1368.     YY_BREAK
  1369. case 19:
  1370. YY_USER_ACTION
  1371. # line 182 "./ldlex.l"
  1372. { RTOKEN(RSHIFT);}
  1373.     YY_BREAK
  1374. case 20:
  1375. YY_USER_ACTION
  1376. # line 183 "./ldlex.l"
  1377. { RTOKEN(PLUSEQ);}
  1378.     YY_BREAK
  1379. case 21:
  1380. YY_USER_ACTION
  1381. # line 184 "./ldlex.l"
  1382. { RTOKEN(MINUSEQ);}
  1383.     YY_BREAK
  1384. case 22:
  1385. YY_USER_ACTION
  1386. # line 185 "./ldlex.l"
  1387. { RTOKEN(MULTEQ);}
  1388.     YY_BREAK
  1389. case 23:
  1390. YY_USER_ACTION
  1391. # line 186 "./ldlex.l"
  1392. { RTOKEN(DIVEQ);}
  1393.     YY_BREAK
  1394. case 24:
  1395. YY_USER_ACTION
  1396. # line 187 "./ldlex.l"
  1397. { RTOKEN(ANDEQ);}
  1398.     YY_BREAK
  1399. case 25:
  1400. YY_USER_ACTION
  1401. # line 188 "./ldlex.l"
  1402. { RTOKEN(OREQ);}
  1403.     YY_BREAK
  1404. case 26:
  1405. YY_USER_ACTION
  1406. # line 189 "./ldlex.l"
  1407. { RTOKEN(ANDAND);}
  1408.     YY_BREAK
  1409. case 27:
  1410. YY_USER_ACTION
  1411. # line 190 "./ldlex.l"
  1412. { RTOKEN('>');}
  1413.     YY_BREAK
  1414. case 28:
  1415. YY_USER_ACTION
  1416. # line 191 "./ldlex.l"
  1417. { RTOKEN(',');}
  1418.     YY_BREAK
  1419. case 29:
  1420. YY_USER_ACTION
  1421. # line 192 "./ldlex.l"
  1422. { RTOKEN('&');}
  1423.     YY_BREAK
  1424. case 30:
  1425. YY_USER_ACTION
  1426. # line 193 "./ldlex.l"
  1427. { RTOKEN('|');}
  1428.     YY_BREAK
  1429. case 31:
  1430. YY_USER_ACTION
  1431. # line 194 "./ldlex.l"
  1432. { RTOKEN('~');}
  1433.     YY_BREAK
  1434. case 32:
  1435. YY_USER_ACTION
  1436. # line 195 "./ldlex.l"
  1437. { RTOKEN('!');}
  1438.     YY_BREAK
  1439. case 33:
  1440. YY_USER_ACTION
  1441. # line 196 "./ldlex.l"
  1442. { RTOKEN('?');}
  1443.     YY_BREAK
  1444. case 34:
  1445. YY_USER_ACTION
  1446. # line 197 "./ldlex.l"
  1447. { RTOKEN('*');}
  1448.     YY_BREAK
  1449. case 35:
  1450. YY_USER_ACTION
  1451. # line 198 "./ldlex.l"
  1452. { RTOKEN('+');}
  1453.     YY_BREAK
  1454. case 36:
  1455. YY_USER_ACTION
  1456. # line 199 "./ldlex.l"
  1457. { RTOKEN('-');}
  1458.     YY_BREAK
  1459. case 37:
  1460. YY_USER_ACTION
  1461. # line 200 "./ldlex.l"
  1462. { RTOKEN('/');}
  1463.     YY_BREAK
  1464. case 38:
  1465. YY_USER_ACTION
  1466. # line 201 "./ldlex.l"
  1467. { RTOKEN('%');}
  1468.     YY_BREAK
  1469. case 39:
  1470. YY_USER_ACTION
  1471. # line 202 "./ldlex.l"
  1472. { RTOKEN('<');}
  1473.     YY_BREAK
  1474. case 40:
  1475. YY_USER_ACTION
  1476. # line 203 "./ldlex.l"
  1477. { RTOKEN('=');}
  1478.     YY_BREAK
  1479. case 41:
  1480. YY_USER_ACTION
  1481. # line 204 "./ldlex.l"
  1482. { RTOKEN('}') ; }
  1483.     YY_BREAK
  1484. case 42:
  1485. YY_USER_ACTION
  1486. # line 205 "./ldlex.l"
  1487. { RTOKEN('{'); }
  1488.     YY_BREAK
  1489. case 43:
  1490. YY_USER_ACTION
  1491. # line 206 "./ldlex.l"
  1492. { RTOKEN(')');}
  1493.     YY_BREAK
  1494. case 44:
  1495. YY_USER_ACTION
  1496. # line 207 "./ldlex.l"
  1497. { RTOKEN('(');}
  1498.     YY_BREAK
  1499. case 45:
  1500. YY_USER_ACTION
  1501. # line 208 "./ldlex.l"
  1502. { RTOKEN(':'); }
  1503.     YY_BREAK
  1504. case 46:
  1505. YY_USER_ACTION
  1506. # line 209 "./ldlex.l"
  1507. { RTOKEN(';');}
  1508.     YY_BREAK
  1509. case 47:
  1510. YY_USER_ACTION
  1511. # line 210 "./ldlex.l"
  1512. { RTOKEN(MEMORY);}
  1513.     YY_BREAK
  1514. case 48:
  1515. YY_USER_ACTION
  1516. # line 211 "./ldlex.l"
  1517. { RTOKEN(ORIGIN);}
  1518.     YY_BREAK
  1519. case 49:
  1520. YY_USER_ACTION
  1521. # line 212 "./ldlex.l"
  1522. { RTOKEN(BLOCK);}
  1523.     YY_BREAK
  1524. case 50:
  1525. YY_USER_ACTION
  1526. # line 213 "./ldlex.l"
  1527. { RTOKEN(LENGTH);}
  1528.     YY_BREAK
  1529. case 51:
  1530. YY_USER_ACTION
  1531. # line 214 "./ldlex.l"
  1532. { RTOKEN(ALIGN_K);}
  1533.     YY_BREAK
  1534. case 52:
  1535. YY_USER_ACTION
  1536. # line 215 "./ldlex.l"
  1537. { RTOKEN(ADDR);}
  1538.     YY_BREAK
  1539. case 53:
  1540. YY_USER_ACTION
  1541. # line 216 "./ldlex.l"
  1542. { RTOKEN(ENTRY);}
  1543.     YY_BREAK
  1544. case 54:
  1545. YY_USER_ACTION
  1546. # line 217 "./ldlex.l"
  1547. { RTOKEN(NEXT);}
  1548.     YY_BREAK
  1549. case 55:
  1550. YY_USER_ACTION
  1551. # line 218 "./ldlex.l"
  1552. { RTOKEN(SIZEOF_HEADERS);}
  1553.     YY_BREAK
  1554. case 56:
  1555. YY_USER_ACTION
  1556. # line 219 "./ldlex.l"
  1557. { RTOKEN(SIZEOF_HEADERS);}
  1558.     YY_BREAK
  1559. case 57:
  1560. YY_USER_ACTION
  1561. # line 220 "./ldlex.l"
  1562. { RTOKEN(MAP);}
  1563.     YY_BREAK
  1564. case 58:
  1565. YY_USER_ACTION
  1566. # line 221 "./ldlex.l"
  1567. { RTOKEN(SIZEOF);}
  1568.     YY_BREAK
  1569. case 59:
  1570. YY_USER_ACTION
  1571. # line 222 "./ldlex.l"
  1572. { RTOKEN(TARGET_K);}
  1573.     YY_BREAK
  1574. case 60:
  1575. YY_USER_ACTION
  1576. # line 223 "./ldlex.l"
  1577. { RTOKEN(SEARCH_DIR);}
  1578.     YY_BREAK
  1579. case 61:
  1580. YY_USER_ACTION
  1581. # line 224 "./ldlex.l"
  1582. { RTOKEN(OUTPUT);}
  1583.     YY_BREAK
  1584. case 62:
  1585. YY_USER_ACTION
  1586. # line 225 "./ldlex.l"
  1587. { RTOKEN(INPUT);}
  1588.     YY_BREAK
  1589. case 63:
  1590. YY_USER_ACTION
  1591. # line 226 "./ldlex.l"
  1592. { RTOKEN(GROUP);}
  1593.     YY_BREAK
  1594. case 64:
  1595. YY_USER_ACTION
  1596. # line 227 "./ldlex.l"
  1597. { RTOKEN(DEFINED);}
  1598.     YY_BREAK
  1599. case 65:
  1600. YY_USER_ACTION
  1601. # line 228 "./ldlex.l"
  1602. { RTOKEN(CREATE_OBJECT_SYMBOLS);}
  1603.     YY_BREAK
  1604. case 66:
  1605. YY_USER_ACTION
  1606. # line 229 "./ldlex.l"
  1607. { RTOKEN( CONSTRUCTORS);}
  1608.     YY_BREAK
  1609. case 67:
  1610. YY_USER_ACTION
  1611. # line 230 "./ldlex.l"
  1612. { RTOKEN(FORCE_COMMON_ALLOCATION);}
  1613.     YY_BREAK
  1614. case 68:
  1615. YY_USER_ACTION
  1616. # line 231 "./ldlex.l"
  1617. { RTOKEN(SECTIONS);}
  1618.     YY_BREAK
  1619. case 69:
  1620. YY_USER_ACTION
  1621. # line 232 "./ldlex.l"
  1622. { RTOKEN(FILL);}
  1623.     YY_BREAK
  1624. case 70:
  1625. YY_USER_ACTION
  1626. # line 233 "./ldlex.l"
  1627. { RTOKEN(STARTUP);}
  1628.     YY_BREAK
  1629. case 71:
  1630. YY_USER_ACTION
  1631. # line 234 "./ldlex.l"
  1632. { RTOKEN(OUTPUT_FORMAT);}
  1633.     YY_BREAK
  1634. case 72:
  1635. YY_USER_ACTION
  1636. # line 235 "./ldlex.l"
  1637. { RTOKEN( OUTPUT_ARCH);}
  1638.     YY_BREAK
  1639. case 73:
  1640. YY_USER_ACTION
  1641. # line 236 "./ldlex.l"
  1642. { RTOKEN(HLL);}
  1643.     YY_BREAK
  1644. case 74:
  1645. YY_USER_ACTION
  1646. # line 237 "./ldlex.l"
  1647. { RTOKEN(SYSLIB);}
  1648.     YY_BREAK
  1649. case 75:
  1650. YY_USER_ACTION
  1651. # line 238 "./ldlex.l"
  1652. { RTOKEN(FLOAT);}
  1653.     YY_BREAK
  1654. case 76:
  1655. YY_USER_ACTION
  1656. # line 239 "./ldlex.l"
  1657. { RTOKEN( QUAD);}
  1658.     YY_BREAK
  1659. case 77:
  1660. YY_USER_ACTION
  1661. # line 240 "./ldlex.l"
  1662. { RTOKEN( LONG);}
  1663.     YY_BREAK
  1664. case 78:
  1665. YY_USER_ACTION
  1666. # line 241 "./ldlex.l"
  1667. { RTOKEN( SHORT);}
  1668.     YY_BREAK
  1669. case 79:
  1670. YY_USER_ACTION
  1671. # line 242 "./ldlex.l"
  1672. { RTOKEN( BYTE);}
  1673.     YY_BREAK
  1674. case 80:
  1675. YY_USER_ACTION
  1676. # line 243 "./ldlex.l"
  1677. { RTOKEN(NOFLOAT);}
  1678.     YY_BREAK
  1679. case 81:
  1680. YY_USER_ACTION
  1681. # line 244 "./ldlex.l"
  1682. { RTOKEN(NOLOAD);}
  1683.     YY_BREAK
  1684. case 82:
  1685. YY_USER_ACTION
  1686. # line 245 "./ldlex.l"
  1687. { RTOKEN(DSECT);}
  1688.     YY_BREAK
  1689. case 83:
  1690. YY_USER_ACTION
  1691. # line 246 "./ldlex.l"
  1692. { RTOKEN(COPY);}
  1693.     YY_BREAK
  1694. case 84:
  1695. YY_USER_ACTION
  1696. # line 247 "./ldlex.l"
  1697. { RTOKEN(INFO);}
  1698.     YY_BREAK
  1699. case 85:
  1700. YY_USER_ACTION
  1701. # line 248 "./ldlex.l"
  1702. { RTOKEN(OVERLAY);}
  1703.     YY_BREAK
  1704. case 86:
  1705. YY_USER_ACTION
  1706. # line 249 "./ldlex.l"
  1707. { RTOKEN(ORIGIN);}
  1708.     YY_BREAK
  1709. case 87:
  1710. YY_USER_ACTION
  1711. # line 250 "./ldlex.l"
  1712. { RTOKEN(ORIGIN);}
  1713.     YY_BREAK
  1714. case 88:
  1715. YY_USER_ACTION
  1716. # line 251 "./ldlex.l"
  1717. { RTOKEN( LENGTH);}
  1718.     YY_BREAK
  1719. case 89:
  1720. YY_USER_ACTION
  1721. # line 252 "./ldlex.l"
  1722. { RTOKEN( LENGTH);}
  1723.     YY_BREAK
  1724. case 90:
  1725. YY_USER_ACTION
  1726. # line 253 "./ldlex.l"
  1727. { RTOKEN(INCLUDE);}
  1728.     YY_BREAK
  1729. case 91:
  1730. YY_USER_ACTION
  1731. # line 254 "./ldlex.l"
  1732. { RTOKEN(AT);}
  1733.     YY_BREAK
  1734. case 92:
  1735. YY_USER_ACTION
  1736. # line 255 "./ldlex.l"
  1737. { RTOKEN(PROVIDE); }
  1738.     YY_BREAK
  1739. case 93:
  1740. YY_USER_ACTION
  1741. # line 256 "./ldlex.l"
  1742. { ++ lineno;  RTOKEN(NEWLINE); }
  1743.     YY_BREAK
  1744. case 94:
  1745. YY_USER_ACTION
  1746. # line 257 "./ldlex.l"
  1747. { ++ lineno;  RTOKEN(NEWLINE); }
  1748.     YY_BREAK
  1749. case 95:
  1750. YY_USER_ACTION
  1751. # line 258 "./ldlex.l"
  1752. { /* Mri comment line */ }
  1753.     YY_BREAK
  1754. case 96:
  1755. YY_USER_ACTION
  1756. # line 259 "./ldlex.l"
  1757. { RTOKEN(ENDWORD); }
  1758.     YY_BREAK
  1759. case 97:
  1760. YY_USER_ACTION
  1761. # line 260 "./ldlex.l"
  1762. { RTOKEN(ALIGNMOD);}
  1763.     YY_BREAK
  1764. case 98:
  1765. YY_USER_ACTION
  1766. # line 261 "./ldlex.l"
  1767. { RTOKEN(ALIGN_K);}
  1768.     YY_BREAK
  1769. case 99:
  1770. YY_USER_ACTION
  1771. # line 263 "./ldlex.l"
  1772. { RTOKEN(CHIP); }
  1773.     YY_BREAK
  1774. case 100:
  1775. YY_USER_ACTION
  1776. # line 264 "./ldlex.l"
  1777. { RTOKEN(BASE); }
  1778.     YY_BREAK
  1779. case 101:
  1780. YY_USER_ACTION
  1781. # line 265 "./ldlex.l"
  1782. { RTOKEN(ALIAS); }
  1783.     YY_BREAK
  1784. case 102:
  1785. YY_USER_ACTION
  1786. # line 266 "./ldlex.l"
  1787. { RTOKEN(TRUNCATE); }
  1788.     YY_BREAK
  1789. case 103:
  1790. YY_USER_ACTION
  1791. # line 267 "./ldlex.l"
  1792. { RTOKEN(LOAD); }
  1793.     YY_BREAK
  1794. case 104:
  1795. YY_USER_ACTION
  1796. # line 268 "./ldlex.l"
  1797. { RTOKEN(PUBLIC); }
  1798.     YY_BREAK
  1799. case 105:
  1800. YY_USER_ACTION
  1801. # line 269 "./ldlex.l"
  1802. { RTOKEN(ORDER); }
  1803.     YY_BREAK
  1804. case 106:
  1805. YY_USER_ACTION
  1806. # line 270 "./ldlex.l"
  1807. { RTOKEN(NAMEWORD); }
  1808.     YY_BREAK
  1809. case 107:
  1810. YY_USER_ACTION
  1811. # line 271 "./ldlex.l"
  1812. { RTOKEN(FORMAT); }
  1813.     YY_BREAK
  1814. case 108:
  1815. YY_USER_ACTION
  1816. # line 272 "./ldlex.l"
  1817. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  1818.     YY_BREAK
  1819. case 109:
  1820. YY_USER_ACTION
  1821. # line 273 "./ldlex.l"
  1822. { RTOKEN(SECT); }
  1823.     YY_BREAK
  1824. case 110:
  1825. YY_USER_ACTION
  1826. # line 274 "./ldlex.l"
  1827. { RTOKEN(ABSOLUTE); }
  1828.     YY_BREAK
  1829. case 111:
  1830. YY_USER_ACTION
  1831. # line 275 "./ldlex.l"
  1832. { RTOKEN(ENDWORD); }
  1833.     YY_BREAK
  1834. case 112:
  1835. YY_USER_ACTION
  1836. # line 276 "./ldlex.l"
  1837. { RTOKEN(CHIP); }
  1838.     YY_BREAK
  1839. case 113:
  1840. YY_USER_ACTION
  1841. # line 277 "./ldlex.l"
  1842. { RTOKEN(LOAD); }
  1843.     YY_BREAK
  1844. case 114:
  1845. YY_USER_ACTION
  1846. # line 278 "./ldlex.l"
  1847. { RTOKEN(ORDER); }
  1848.     YY_BREAK
  1849. case 115:
  1850. YY_USER_ACTION
  1851. # line 279 "./ldlex.l"
  1852. { RTOKEN(NAMEWORD); }
  1853.     YY_BREAK
  1854. case 116:
  1855. YY_USER_ACTION
  1856. # line 280 "./ldlex.l"
  1857. { RTOKEN(FORMAT); }
  1858.     YY_BREAK
  1859. case 117:
  1860. YY_USER_ACTION
  1861. # line 281 "./ldlex.l"
  1862. { RTOKEN(LIST); /* LIST and ignore to end of line */ }
  1863.     YY_BREAK
  1864. case 118:
  1865. YY_USER_ACTION
  1866. # line 282 "./ldlex.l"
  1867. { RTOKEN(SECT); }
  1868.     YY_BREAK
  1869. case 119:
  1870. YY_USER_ACTION
  1871. # line 283 "./ldlex.l"
  1872. { RTOKEN(ABSOLUTE); }
  1873.     YY_BREAK
  1874. case 120:
  1875. YY_USER_ACTION
  1876. # line 285 "./ldlex.l"
  1877. {
  1878. /* Filename without commas, needed to parse mri stuff */
  1879.                  yylval.name = buystring(yytext); 
  1880.                   return NAME;
  1881.                 }
  1882.     YY_BREAK
  1883. case 121:
  1884. YY_USER_ACTION
  1885. # line 292 "./ldlex.l"
  1886. {
  1887.                  yylval.name = buystring(yytext); 
  1888.                   return NAME;
  1889.                 }
  1890.     YY_BREAK
  1891. case 122:
  1892. YY_USER_ACTION
  1893. # line 296 "./ldlex.l"
  1894. { yylval.name = buystring(yytext); 
  1895.                   return NAME;
  1896.                 }
  1897.     YY_BREAK
  1898. case 123:
  1899. YY_USER_ACTION
  1900. # line 300 "./ldlex.l"
  1901. {
  1902.                     /* No matter the state, quotes
  1903.                        give what's inside */
  1904.                     yylval.name = buystring(yytext+1);
  1905.                     yylval.name[yyleng-2] = 0;
  1906.                     return NAME;
  1907.                 }
  1908.     YY_BREAK
  1909. case 124:
  1910. YY_USER_ACTION
  1911. # line 307 "./ldlex.l"
  1912. { lineno++;}
  1913.     YY_BREAK
  1914. case 125:
  1915. YY_USER_ACTION
  1916. # line 308 "./ldlex.l"
  1917. { lineno++;}
  1918.     YY_BREAK
  1919. case 126:
  1920. YY_USER_ACTION
  1921. # line 309 "./ldlex.l"
  1922.  
  1923.     YY_BREAK
  1924. case YY_STATE_EOF(INITIAL):
  1925. case YY_STATE_EOF(SCRIPT):
  1926. case YY_STATE_EOF(EXPRESSION):
  1927. case YY_STATE_EOF(BOTH):
  1928. case YY_STATE_EOF(DEFSYMEXP):
  1929. case YY_STATE_EOF(MRI):
  1930. # line 311 "./ldlex.l"
  1931. {
  1932.   include_stack_ptr--;
  1933.     
  1934.   if (include_stack_ptr == 0) 
  1935.   {
  1936.     yyterminate();
  1937.   }
  1938.   else 
  1939.   {
  1940.     yy_switch_to_buffer(include_stack[include_stack_ptr]);
  1941.  
  1942.   }
  1943.   BEGIN(SCRIPT);
  1944.   ldfile_input_filename = file_name_stack[include_stack_ptr - 1];
  1945.   lineno = lineno_stack[include_stack_ptr - 1];
  1946.  
  1947.   return END;
  1948. }
  1949.     YY_BREAK
  1950. case 127:
  1951. YY_USER_ACTION
  1952. # line 330 "./ldlex.l"
  1953. lex_warn_invalid(" in script", yytext);
  1954.     YY_BREAK
  1955. case 128:
  1956. YY_USER_ACTION
  1957. # line 331 "./ldlex.l"
  1958. lex_warn_invalid(" in expression", yytext);
  1959.     YY_BREAK
  1960. case 129:
  1961. YY_USER_ACTION
  1962. # line 333 "./ldlex.l"
  1963. ECHO;
  1964.     YY_BREAK
  1965.  
  1966.     case YY_END_OF_BUFFER:
  1967.         {
  1968.         /* Amount of text matched not including the EOB char. */
  1969.         int yy_amount_of_matched_text = yy_cp - yytext_ptr - 1;
  1970.  
  1971.         /* Undo the effects of YY_DO_BEFORE_ACTION. */
  1972.         *yy_cp = yy_hold_char;
  1973.  
  1974.         if ( yy_current_buffer->yy_input_file != yyin )
  1975.             {
  1976.             /* This can happen if we scan a file, yywrap() returns
  1977.              * 1, and then later the user points yyin at a new
  1978.              * file to resume scanning.  We have to assure
  1979.              * consistency between yy_current_buffer and our
  1980.              * globals.  Here is the right place to do so, because
  1981.              * this is the first action (other than possibly a
  1982.              * back-up) that will match for the new input file.
  1983.              */
  1984.             yy_current_buffer->yy_input_file = yyin;
  1985.             yy_n_chars = yy_current_buffer->yy_n_chars;
  1986.             }
  1987.  
  1988.         /* Note that here we test for yy_c_buf_p "<=" to the position
  1989.          * of the first EOB in the buffer, since yy_c_buf_p will
  1990.          * already have been incremented past the NUL character
  1991.          * (since all states make transitions on EOB to the
  1992.          * end-of-buffer state).  Contrast this with the test
  1993.          * in input().
  1994.          */
  1995.         if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  1996.             { /* This was really a NUL. */
  1997.             yy_state_type yy_next_state;
  1998.  
  1999.             yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
  2000.  
  2001.             yy_current_state = yy_get_previous_state();
  2002.  
  2003.             /* Okay, we're now positioned to make the NUL
  2004.              * transition.  We couldn't have
  2005.              * yy_get_previous_state() go ahead and do it
  2006.              * for us because it doesn't know how to deal
  2007.              * with the possibility of jamming (and we don't
  2008.              * want to build jamming into it because then it
  2009.              * will run more slowly).
  2010.              */
  2011.  
  2012.             yy_next_state = yy_try_NUL_trans( yy_current_state );
  2013.  
  2014.             yy_bp = yytext_ptr + YY_MORE_ADJ;
  2015.  
  2016.             if ( yy_next_state )
  2017.                 {
  2018.                 /* Consume the NUL. */
  2019.                 yy_cp = ++yy_c_buf_p;
  2020.                 yy_current_state = yy_next_state;
  2021.                 goto yy_match;
  2022.                 }
  2023.  
  2024.             else
  2025.                 {
  2026.                 goto yy_find_action;
  2027.                 }
  2028.             }
  2029.  
  2030.         else switch ( yy_get_next_buffer() )
  2031.             {
  2032.             case EOB_ACT_END_OF_FILE:
  2033.                 {
  2034.                 yy_did_buffer_switch_on_eof = 0;
  2035.  
  2036.                 if ( yywrap() )
  2037.                     {
  2038.                     /* Note: because we've taken care in
  2039.                      * yy_get_next_buffer() to have set up
  2040.                      * yytext, we can now set up
  2041.                      * yy_c_buf_p so that if some total
  2042.                      * hoser (like flex itself) wants to
  2043.                      * call the scanner after we return the
  2044.                      * YY_NULL, it'll still work - another
  2045.                      * YY_NULL will get returned.
  2046.                      */
  2047.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2048.  
  2049.                     yy_act = YY_STATE_EOF(YY_START);
  2050.                     goto do_action;
  2051.                     }
  2052.  
  2053.                 else
  2054.                     {
  2055.                     if ( ! yy_did_buffer_switch_on_eof )
  2056.                         YY_NEW_FILE;
  2057.                     }
  2058.                 break;
  2059.                 }
  2060.  
  2061.             case EOB_ACT_CONTINUE_SCAN:
  2062.                 yy_c_buf_p =
  2063.                     yytext_ptr + yy_amount_of_matched_text;
  2064.  
  2065.                 yy_current_state = yy_get_previous_state();
  2066.  
  2067.                 yy_cp = yy_c_buf_p;
  2068.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2069.                 goto yy_match;
  2070.  
  2071.             case EOB_ACT_LAST_MATCH:
  2072.                 yy_c_buf_p =
  2073.                 &yy_current_buffer->yy_ch_buf[yy_n_chars];
  2074.  
  2075.                 yy_current_state = yy_get_previous_state();
  2076.  
  2077.                 yy_cp = yy_c_buf_p;
  2078.                 yy_bp = yytext_ptr + YY_MORE_ADJ;
  2079.                 goto yy_find_action;
  2080.             }
  2081.         break;
  2082.         }
  2083.  
  2084.     default:
  2085.         YY_FATAL_ERROR(
  2086.             "fatal flex scanner internal error--no action found" );
  2087.     } /* end of action switch */
  2088.         } /* end of scanning one token */
  2089.     } /* end of yylex */
  2090.  
  2091.  
  2092. /* yy_get_next_buffer - try to read in a new buffer
  2093.  *
  2094.  * Returns a code representing an action:
  2095.  *    EOB_ACT_LAST_MATCH -
  2096.  *    EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  2097.  *    EOB_ACT_END_OF_FILE - end of file
  2098.  */
  2099.  
  2100. static int yy_get_next_buffer()
  2101.     {
  2102.     register char *dest = yy_current_buffer->yy_ch_buf;
  2103.     register char *source = yytext_ptr - 1; /* copy prev. char, too */
  2104.     register int number_to_move, i;
  2105.     int ret_val;
  2106.  
  2107.     if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
  2108.         YY_FATAL_ERROR(
  2109.         "fatal flex scanner internal error--end of buffer missed" );
  2110.  
  2111.     if ( yy_current_buffer->yy_fill_buffer == 0 )
  2112.         { /* Don't try to fill the buffer, so this is an EOF. */
  2113.         if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
  2114.             {
  2115.             /* We matched a singled characater, the EOB, so
  2116.              * treat this as a final EOF.
  2117.              */
  2118.             return EOB_ACT_END_OF_FILE;
  2119.             }
  2120.  
  2121.         else
  2122.             {
  2123.             /* We matched some text prior to the EOB, first
  2124.              * process it.
  2125.              */
  2126.             return EOB_ACT_LAST_MATCH;
  2127.             }
  2128.         }
  2129.  
  2130.     /* Try to read more data. */
  2131.  
  2132.     /* First move last chars to start of buffer. */
  2133.     number_to_move = yy_c_buf_p - yytext_ptr;
  2134.  
  2135.     for ( i = 0; i < number_to_move; ++i )
  2136.         *(dest++) = *(source++);
  2137.  
  2138.     if ( yy_current_buffer->yy_eof_status != EOF_NOT_SEEN )
  2139.         /* don't do the read, it's not guaranteed to return an EOF,
  2140.          * just force an EOF
  2141.          */
  2142.         yy_n_chars = 0;
  2143.  
  2144.     else
  2145.         {
  2146.         int num_to_read =
  2147.             yy_current_buffer->yy_buf_size - number_to_move - 1;
  2148.  
  2149.         while ( num_to_read <= 0 )
  2150.             { /* Not enough room in the buffer - grow it. */
  2151. #ifdef YY_USES_REJECT
  2152.             YY_FATAL_ERROR(
  2153. "input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
  2154. #else
  2155.  
  2156.             /* just a shorter name for the current buffer */
  2157.             YY_BUFFER_STATE b = yy_current_buffer;
  2158.  
  2159.             int yy_c_buf_p_offset = yy_c_buf_p - b->yy_ch_buf;
  2160.  
  2161.             b->yy_buf_size *= 2;
  2162.             b->yy_ch_buf = (char *)
  2163.                 yy_flex_realloc( (void *) b->yy_ch_buf,
  2164.                          b->yy_buf_size );
  2165.  
  2166.             if ( ! b->yy_ch_buf )
  2167.                 YY_FATAL_ERROR(
  2168.                 "fatal error - scanner input buffer overflow" );
  2169.  
  2170.             yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
  2171.  
  2172.             num_to_read = yy_current_buffer->yy_buf_size -
  2173.                         number_to_move - 1;
  2174. #endif
  2175.             }
  2176.  
  2177.         if ( num_to_read > YY_READ_BUF_SIZE )
  2178.             num_to_read = YY_READ_BUF_SIZE;
  2179.  
  2180.         /* Read in more data. */
  2181.         YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
  2182.             yy_n_chars, num_to_read );
  2183.         }
  2184.  
  2185.     if ( yy_n_chars == 0 )
  2186.         {
  2187.         if ( number_to_move - YY_MORE_ADJ == 1 )
  2188.             {
  2189.             ret_val = EOB_ACT_END_OF_FILE;
  2190.             yyrestart( yyin );
  2191.             }
  2192.  
  2193.         else
  2194.             {
  2195.             ret_val = EOB_ACT_LAST_MATCH;
  2196.             yy_current_buffer->yy_eof_status = EOF_PENDING;
  2197.             }
  2198.         }
  2199.  
  2200.     else
  2201.         ret_val = EOB_ACT_CONTINUE_SCAN;
  2202.  
  2203.     yy_n_chars += number_to_move;
  2204.     yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
  2205.     yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
  2206.  
  2207.     /* yytext begins at the second character in yy_ch_buf; the first
  2208.      * character is the one which preceded it before reading in the latest
  2209.      * buffer; it needs to be kept around in case it's a newline, so
  2210.      * yy_get_previous_state() will have with '^' rules active.
  2211.      */
  2212.  
  2213.     yytext_ptr = &yy_current_buffer->yy_ch_buf[1];
  2214.  
  2215.     return ret_val;
  2216.     }
  2217.  
  2218.  
  2219. /* yy_get_previous_state - get the state just before the EOB char was reached */
  2220.  
  2221. static yy_state_type yy_get_previous_state()
  2222.     {
  2223.     register yy_state_type yy_current_state;
  2224.     register char *yy_cp;
  2225.  
  2226.     yy_current_state = yy_start;
  2227.  
  2228.     for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
  2229.         {
  2230.         register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  2231.         if ( yy_accept[yy_current_state] )
  2232.             {
  2233.             yy_last_accepting_state = yy_current_state;
  2234.             yy_last_accepting_cpos = yy_cp;
  2235.             }
  2236.         while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2237.             {
  2238.             yy_current_state = (int) yy_def[yy_current_state];
  2239.             if ( yy_current_state >= 826 )
  2240.                 yy_c = yy_meta[(unsigned int) yy_c];
  2241.             }
  2242.         yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2243.         }
  2244.  
  2245.     return yy_current_state;
  2246.     }
  2247.  
  2248.  
  2249. /* yy_try_NUL_trans - try to make a transition on the NUL character
  2250.  *
  2251.  * synopsis
  2252.  *    next_state = yy_try_NUL_trans( current_state );
  2253.  */
  2254.  
  2255. #ifdef YY_USE_PROTOS
  2256. static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
  2257. #else
  2258. static yy_state_type yy_try_NUL_trans( yy_current_state )
  2259. yy_state_type yy_current_state;
  2260. #endif
  2261.     {
  2262.     register int yy_is_jam;
  2263.     register char *yy_cp = yy_c_buf_p;
  2264.  
  2265.     register YY_CHAR yy_c = 1;
  2266.     if ( yy_accept[yy_current_state] )
  2267.         {
  2268.         yy_last_accepting_state = yy_current_state;
  2269.         yy_last_accepting_cpos = yy_cp;
  2270.         }
  2271.     while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  2272.         {
  2273.         yy_current_state = (int) yy_def[yy_current_state];
  2274.         if ( yy_current_state >= 826 )
  2275.             yy_c = yy_meta[(unsigned int) yy_c];
  2276.         }
  2277.     yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
  2278.     yy_is_jam = (yy_current_state == 825);
  2279.  
  2280.     return yy_is_jam ? 0 : yy_current_state;
  2281.     }
  2282.  
  2283.  
  2284. #ifdef YY_USE_PROTOS
  2285. static void yyunput( int c, register char *yy_bp )
  2286. #else
  2287. static void yyunput( c, yy_bp )
  2288. int c;
  2289. register char *yy_bp;
  2290. #endif
  2291.     {
  2292.     register char *yy_cp = yy_c_buf_p;
  2293.  
  2294.     /* undo effects of setting up yytext */
  2295.     *yy_cp = yy_hold_char;
  2296.  
  2297.     if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2298.         { /* need to shift things up to make room */
  2299.         /* +2 for EOB chars. */
  2300.         register int number_to_move = yy_n_chars + 2;
  2301.         register char *dest = &yy_current_buffer->yy_ch_buf[
  2302.                     yy_current_buffer->yy_buf_size + 2];
  2303.         register char *source =
  2304.                 &yy_current_buffer->yy_ch_buf[number_to_move];
  2305.  
  2306.         while ( source > yy_current_buffer->yy_ch_buf )
  2307.             *--dest = *--source;
  2308.  
  2309.         yy_cp += dest - source;
  2310.         yy_bp += dest - source;
  2311.         yy_n_chars = yy_current_buffer->yy_buf_size;
  2312.  
  2313.         if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
  2314.             YY_FATAL_ERROR( "flex scanner push-back overflow" );
  2315.         }
  2316.  
  2317.     if ( yy_cp > yy_bp && yy_cp[-1] == '\n' )
  2318.         yy_cp[-2] = '\n';
  2319.  
  2320.     *--yy_cp = (char) c;
  2321.  
  2322.  
  2323.     /* Note: the formal parameter *must* be called "yy_bp" for this
  2324.      * macro to now work correctly.
  2325.      */
  2326.     YY_DO_BEFORE_ACTION; /* set up yytext again */
  2327.     }
  2328.  
  2329.  
  2330. #ifdef __cplusplus
  2331. static int yyinput()
  2332. #else
  2333. static int input()
  2334. #endif
  2335.     {
  2336.     int c;
  2337.  
  2338.     *yy_c_buf_p = yy_hold_char;
  2339.  
  2340.     if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
  2341.         {
  2342.         /* yy_c_buf_p now points to the character we want to return.
  2343.          * If this occurs *before* the EOB characters, then it's a
  2344.          * valid NUL; if not, then we've hit the end of the buffer.
  2345.          */
  2346.         if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
  2347.             /* This was really a NUL. */
  2348.             *yy_c_buf_p = '\0';
  2349.  
  2350.         else
  2351.             { /* need more input */
  2352.             yytext_ptr = yy_c_buf_p;
  2353.             ++yy_c_buf_p;
  2354.  
  2355.             switch ( yy_get_next_buffer() )
  2356.                 {
  2357.                 case EOB_ACT_END_OF_FILE:
  2358.                     {
  2359.                     if ( yywrap() )
  2360.                         {
  2361.                         yy_c_buf_p =
  2362.                         yytext_ptr + YY_MORE_ADJ;
  2363.                         return EOF;
  2364.                         }
  2365.  
  2366.                     YY_NEW_FILE;
  2367. #ifdef __cplusplus
  2368.                     return yyinput();
  2369. #else
  2370.                     return input();
  2371. #endif
  2372.                     }
  2373.  
  2374.                 case EOB_ACT_CONTINUE_SCAN:
  2375.                     yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
  2376.                     break;
  2377.  
  2378.                 case EOB_ACT_LAST_MATCH:
  2379. #ifdef __cplusplus
  2380.                     YY_FATAL_ERROR(
  2381.                     "unexpected last match in yyinput()" );
  2382. #else
  2383.                     YY_FATAL_ERROR(
  2384.                     "unexpected last match in input()" );
  2385. #endif
  2386.                 }
  2387.             }
  2388.         }
  2389.  
  2390.     c = *yy_c_buf_p;
  2391.     *yy_c_buf_p = '\0';    /* preserve yytext */
  2392.     yy_hold_char = *++yy_c_buf_p;
  2393.  
  2394.     return c;
  2395.     }
  2396.  
  2397.  
  2398. #ifdef YY_USE_PROTOS
  2399. void yyrestart( FILE *input_file )
  2400. #else
  2401. void yyrestart( input_file )
  2402. FILE *input_file;
  2403. #endif
  2404.     {
  2405.     if ( ! yy_current_buffer )
  2406.         yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
  2407.  
  2408.     yy_init_buffer( yy_current_buffer, input_file );
  2409.     yy_load_buffer_state();
  2410.     }
  2411.  
  2412.  
  2413. #ifdef YY_USE_PROTOS
  2414. void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
  2415. #else
  2416. void yy_switch_to_buffer( new_buffer )
  2417. YY_BUFFER_STATE new_buffer;
  2418. #endif
  2419.     {
  2420.     if ( yy_current_buffer == new_buffer )
  2421.         return;
  2422.  
  2423.     if ( yy_current_buffer )
  2424.         {
  2425.         /* Flush out information for old buffer. */
  2426.         *yy_c_buf_p = yy_hold_char;
  2427.         yy_current_buffer->yy_buf_pos = yy_c_buf_p;
  2428.         yy_current_buffer->yy_n_chars = yy_n_chars;
  2429.         }
  2430.  
  2431.     yy_current_buffer = new_buffer;
  2432.     yy_load_buffer_state();
  2433.  
  2434.     /* We don't actually know whether we did this switch during
  2435.      * EOF (yywrap()) processing, but the only time this flag
  2436.      * is looked at is after yywrap() is called, so it's safe
  2437.      * to go ahead and always set it.
  2438.      */
  2439.     yy_did_buffer_switch_on_eof = 1;
  2440.     }
  2441.  
  2442.  
  2443. #ifdef YY_USE_PROTOS
  2444. void yy_load_buffer_state( void )
  2445. #else
  2446. void yy_load_buffer_state()
  2447. #endif
  2448.     {
  2449.     yy_n_chars = yy_current_buffer->yy_n_chars;
  2450.     yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
  2451.     yyin = yy_current_buffer->yy_input_file;
  2452.     yy_hold_char = *yy_c_buf_p;
  2453.     }
  2454.  
  2455.  
  2456. #ifdef YY_USE_PROTOS
  2457. YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
  2458. #else
  2459. YY_BUFFER_STATE yy_create_buffer( file, size )
  2460. FILE *file;
  2461. int size;
  2462. #endif
  2463.     {
  2464.     YY_BUFFER_STATE b;
  2465.  
  2466.     b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
  2467.  
  2468.     if ( ! b )
  2469.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2470.  
  2471.     b->yy_buf_size = size;
  2472.  
  2473.     /* yy_ch_buf has to be 2 characters longer than the size given because
  2474.      * we need to put in 2 end-of-buffer characters.
  2475.      */
  2476.     b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
  2477.  
  2478.     if ( ! b->yy_ch_buf )
  2479.         YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  2480.  
  2481.     yy_init_buffer( b, file );
  2482.  
  2483.     return b;
  2484.     }
  2485.  
  2486.  
  2487. #ifdef YY_USE_PROTOS
  2488. void yy_delete_buffer( YY_BUFFER_STATE b )
  2489. #else
  2490. void yy_delete_buffer( b )
  2491. YY_BUFFER_STATE b;
  2492. #endif
  2493.     {
  2494.     if ( b == yy_current_buffer )
  2495.         yy_current_buffer = (YY_BUFFER_STATE) 0;
  2496.  
  2497.     yy_flex_free( (void *) b->yy_ch_buf );
  2498.     yy_flex_free( (void *) b );
  2499.     }
  2500.  
  2501.  
  2502. #ifdef YY_USE_PROTOS
  2503. void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
  2504. #else
  2505. void yy_init_buffer( b, file )
  2506. YY_BUFFER_STATE b;
  2507. FILE *file;
  2508. #endif
  2509.     {
  2510.     b->yy_input_file = file;
  2511.  
  2512.     /* We put in the '\n' and start reading from [1] so that an
  2513.      * initial match-at-newline will be true.
  2514.      */
  2515.  
  2516.     b->yy_ch_buf[0] = '\n';
  2517.     b->yy_n_chars = 1;
  2518.  
  2519.     /* We always need two end-of-buffer characters.  The first causes
  2520.      * a transition to the end-of-buffer state.  The second causes
  2521.      * a jam in that state.
  2522.      */
  2523.     b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  2524.     b->yy_ch_buf[2] = YY_END_OF_BUFFER_CHAR;
  2525.  
  2526.     b->yy_buf_pos = &b->yy_ch_buf[1];
  2527.  
  2528.     b->yy_is_interactive = file ? isatty( fileno(file) ) : 0;
  2529.  
  2530.     b->yy_fill_buffer = 1;
  2531.  
  2532.     b->yy_eof_status = EOF_NOT_SEEN;
  2533.     }
  2534.  
  2535.  
  2536. #ifdef YY_USE_PROTOS
  2537. static void yy_push_state( int new_state )
  2538. #else
  2539. static void yy_push_state( new_state )
  2540. int new_state;
  2541. #endif
  2542.     {
  2543.     if ( yy_start_stack_ptr >= yy_start_stack_depth )
  2544.         {
  2545.         int new_size;
  2546.  
  2547.         yy_start_stack_depth += YY_START_STACK_INCR;
  2548.         new_size = yy_start_stack_depth * sizeof( int );
  2549.  
  2550.         if ( ! yy_start_stack )
  2551.             yy_start_stack = (int *) yy_flex_alloc( new_size );
  2552.  
  2553.         else
  2554.             yy_start_stack = (int *) yy_flex_realloc(
  2555.                     (void *) yy_start_stack, new_size );
  2556.  
  2557.         if ( ! yy_start_stack )
  2558.             YY_FATAL_ERROR(
  2559.             "out of memory expanding start-condition stack" );
  2560.         }
  2561.  
  2562.     yy_start_stack[yy_start_stack_ptr++] = YY_START;
  2563.  
  2564.     BEGIN(new_state);
  2565.     }
  2566.  
  2567.  
  2568. static void yy_pop_state()
  2569.     {
  2570.     if ( --yy_start_stack_ptr < 0 )
  2571.         YY_FATAL_ERROR( "start-condition stack underflow" );
  2572.  
  2573.     BEGIN(yy_start_stack[yy_start_stack_ptr]);
  2574.     }
  2575.  
  2576.  
  2577. static int yy_top_state()
  2578.     {
  2579.     return yy_start_stack[yy_start_stack_ptr - 1];
  2580.     }
  2581.  
  2582.  
  2583. #ifdef YY_USE_PROTOS
  2584. static void yy_fatal_error( const char msg[] )
  2585. #else
  2586. static void yy_fatal_error( msg )
  2587. char msg[];
  2588. #endif
  2589.     {
  2590.     (void) fprintf( stderr, "%s\n", msg );
  2591.     exit( 1 );
  2592.     }
  2593.  
  2594.  
  2595.  
  2596. /* Redefine yyless() so it works in section 3 code. */
  2597.  
  2598. #undef yyless
  2599. #define yyless(n) \
  2600.     do \
  2601.         { \
  2602.         /* Undo effects of setting up yytext. */ \
  2603.         yytext[yyleng] = yy_hold_char; \
  2604.         yy_c_buf_p = yytext + n - YY_MORE_ADJ; \
  2605.         yy_hold_char = *yy_c_buf_p; \
  2606.         *yy_c_buf_p = '\0'; \
  2607.         yyleng = n; \
  2608.         } \
  2609.     while ( 0 )
  2610.  
  2611.  
  2612. /* Internal utility routines. */
  2613.  
  2614. #ifndef yytext_ptr
  2615. #ifdef YY_USE_PROTOS
  2616. static void yy_flex_strcpy( char *s1, const char *s2 )
  2617. #else
  2618. static void yy_flex_strcpy( s1, s2 )
  2619. char *s1;
  2620. const char *s2;
  2621. #endif
  2622.     {
  2623.     while ( (*(s1++) = *(s2++)) )
  2624.         ;
  2625.     }
  2626. #endif
  2627.  
  2628.  
  2629. #ifdef YY_USE_PROTOS
  2630. static void *yy_flex_alloc( unsigned int size )
  2631. #else
  2632. static void *yy_flex_alloc( size )
  2633. unsigned int size;
  2634. #endif
  2635.     {
  2636.     return (void *) xmalloc( size );
  2637.     }
  2638.  
  2639. #ifdef YY_USE_PROTOS
  2640. static void *yy_flex_realloc( void *ptr, unsigned int size )
  2641. #else
  2642. static void *yy_flex_realloc( ptr, size )
  2643. void *ptr;
  2644. unsigned int size;
  2645. #endif
  2646.     {
  2647.     return (void *) realloc( ptr, size );
  2648.     }
  2649.  
  2650. #ifdef YY_USE_PROTOS
  2651. static void yy_flex_free( void *ptr )
  2652. #else
  2653. static void yy_flex_free( ptr )
  2654. void *ptr;
  2655. #endif
  2656.     {
  2657.     free( ptr );
  2658.     }
  2659. # line 333 "./ldlex.l"
  2660.  
  2661.  
  2662.  
  2663. /* Switch flex to reading script file NAME, open on FILE,
  2664.    saving the current input info on the include stack.  */
  2665.  
  2666. void
  2667. lex_push_file (file, name)
  2668.      FILE *file;
  2669.      const char *name;
  2670. {
  2671.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  2672.     {
  2673.       einfo("%F:includes nested too deeply\n");
  2674.     }
  2675.   file_name_stack[include_stack_ptr] = name;
  2676.   lineno_stack[include_stack_ptr] = 1;
  2677.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  2678.  
  2679.   include_stack_ptr++;
  2680.   yyin = file;
  2681.   yy_switch_to_buffer(yy_create_buffer(yyin, YY_BUF_SIZE));
  2682.   BEGIN (SCRIPT);
  2683. }
  2684.  
  2685. /* Return a newly created flex input buffer containing STRING,
  2686.    which is SIZE bytes long.  */
  2687.  
  2688. static YY_BUFFER_STATE 
  2689. yy_create_string_buffer (string, size)
  2690.      CONST char *string;
  2691.      size_t size;
  2692. {
  2693.   YY_BUFFER_STATE b;
  2694.  
  2695.   /* Calls to m-alloc get turned by sed into xm-alloc.  */
  2696.   b = (YY_BUFFER_STATE) xmalloc (sizeof (struct yy_buffer_state));
  2697.   b->yy_input_file = 0;
  2698.   b->yy_buf_size = size;
  2699.  
  2700.   /* yy_ch_buf has to be 2 characters longer than the size given because
  2701.      we need to put in 2 end-of-buffer characters.  */
  2702.   b->yy_ch_buf = (char *) xmalloc ((unsigned) (b->yy_buf_size + 3));
  2703.  
  2704.   b->yy_ch_buf[0] = '\n';
  2705.   strcpy (b->yy_ch_buf+1, string);
  2706.   b->yy_ch_buf[size+1] = YY_END_OF_BUFFER_CHAR;
  2707.   b->yy_ch_buf[size+2] = YY_END_OF_BUFFER_CHAR;
  2708.   b->yy_n_chars = size+1;
  2709.   b->yy_buf_pos = &b->yy_ch_buf[1];
  2710.  
  2711.   /* flex 2.4.7 changed the interface.  FIXME: We should not be using
  2712.      a flex internal interface in the first place!  */
  2713. #ifdef YY_BUFFER_NEW
  2714.   b->yy_buffer_status = YY_BUFFER_NEW;
  2715. #else
  2716.   b->yy_eof_status = EOF_NOT_SEEN;
  2717. #endif
  2718.  
  2719.   return b;
  2720. }
  2721.  
  2722. /* Switch flex to reading from STRING, saving the current input info
  2723.    on the include stack.  */
  2724.  
  2725. void
  2726. lex_redirect (string)
  2727.      CONST char *string;
  2728. {
  2729.   YY_BUFFER_STATE tmp;
  2730.  
  2731.   yy_init = 0;
  2732.   if (include_stack_ptr >= MAX_INCLUDE_DEPTH) 
  2733.     {
  2734.       einfo("%F: macros nested too deeply\n");
  2735.     }
  2736.   file_name_stack[include_stack_ptr] = "redirect";
  2737.   lineno_stack[include_stack_ptr] = 0;
  2738.   include_stack[include_stack_ptr] = YY_CURRENT_BUFFER;
  2739.   include_stack_ptr++;
  2740.   tmp = yy_create_string_buffer (string, strlen (string));
  2741.   yy_switch_to_buffer (tmp);
  2742.   BEGIN (SCRIPT);
  2743. }
  2744.  
  2745. /* Functions to switch to a different flex start condition,
  2746.    saving the current start condition on `state_stack'.  */
  2747.  
  2748. static int state_stack[MAX_INCLUDE_DEPTH * 2];
  2749. static int *state_stack_p = state_stack;
  2750.  
  2751. void
  2752. ldlex_script ()
  2753. {
  2754.   *(state_stack_p)++ = yy_start;
  2755.   BEGIN (SCRIPT);
  2756. }
  2757.  
  2758. void
  2759. ldlex_mri_script ()
  2760. {
  2761.   *(state_stack_p)++ = yy_start;
  2762.   BEGIN (MRI);
  2763. }
  2764.  
  2765. void
  2766. ldlex_defsym ()
  2767. {
  2768.   *(state_stack_p)++ = yy_start;
  2769.   BEGIN (DEFSYMEXP);
  2770. }
  2771.        
  2772. void
  2773. ldlex_expression ()
  2774. {
  2775.   *(state_stack_p)++ = yy_start;
  2776.   BEGIN (EXPRESSION);
  2777. }
  2778.  
  2779. void
  2780. ldlex_both ()
  2781. {
  2782.   *(state_stack_p)++ = yy_start;
  2783.   BEGIN (BOTH);
  2784. }
  2785.  
  2786. void
  2787. ldlex_popstate ()
  2788. {
  2789.   yy_start = *(--state_stack_p);
  2790. }
  2791.  
  2792.  
  2793. /* Place up to MAX_SIZE characters in BUF and return in *RESULT
  2794.    either the number of characters read, or 0 to indicate EOF.  */
  2795.  
  2796. static void
  2797. yy_input (buf, result, max_size)
  2798.      char *buf;
  2799.      int *result;
  2800.      int max_size;
  2801. {
  2802.   *result = 0; 
  2803.   if (yy_current_buffer->yy_input_file)
  2804.     {
  2805.       if (yyin)
  2806.     {
  2807.       *result = read (fileno (yyin), (char *) buf, max_size);
  2808.       if (*result < 0) 
  2809.         einfo ("%F%P: read in flex scanner failed");
  2810.     }
  2811.     }
  2812. }
  2813.  
  2814. /* Eat the rest of a C-style comment.  */
  2815.  
  2816. static void
  2817. comment ()
  2818. {
  2819.   int c;
  2820.  
  2821.   while (1)
  2822.   {
  2823.     c = input();
  2824.     while (c != '*' && c != EOF) 
  2825.     {
  2826.       if (c == '\n' || c == '\r')
  2827.     lineno++;
  2828.       c = input();
  2829.     }
  2830.  
  2831.     if (c == '*')
  2832.     {
  2833.       c = input();
  2834.       while (c == '*')
  2835.        c = input();
  2836.       if (c == '/')
  2837.        break;            /* found the end */
  2838.     }
  2839.  
  2840.     if (c == '\n' || c == '\r')
  2841.       lineno++;
  2842.  
  2843.     if (c == EOF)
  2844.     {
  2845.       einfo( "%F%P: EOF in comment\n");
  2846.       break;
  2847.     }
  2848.   }
  2849. }
  2850.  
  2851. /* Warn the user about a garbage character WHAT in the input
  2852.    in context WHERE.  */
  2853.  
  2854. static void
  2855. lex_warn_invalid (where, what)
  2856.      char *where, *what;
  2857. {
  2858.   char buf[5];
  2859.  
  2860.   /* If we have found an input file whose format we do not recognize,
  2861.      and we are therefore treating it as a linker script, and we find
  2862.      an invalid character, then most likely this is a real object file
  2863.      of some different format.  Treat it as such.  */
  2864.   if (ldfile_assumed_script)
  2865.     {
  2866.       bfd_set_error (bfd_error_file_not_recognized);
  2867.       einfo ("%F%s: file not recognized: %E\n", ldfile_input_filename);
  2868.     }
  2869.  
  2870.   if (! isprint ((unsigned char) *what))
  2871.     {
  2872.       sprintf (buf, "\\%03o", (unsigned int) *what);
  2873.       what = buf;
  2874.     }
  2875.  
  2876.   einfo ("%P:%S: ignoring invalid character `%s'%s\n", what, where);
  2877. }
  2878.